@UnTalNixon_exe: 这太疯狂了!一个开源AI,在真实攻击者之前就入侵你的应用 +56,000 星。多代理架构,真实工作……
摘要
Strix是一个开源AI工具,采用多代理架构,自主执行安全测试,覆盖OWASP Top 10漏洞,并提供真实世界的概念验证和30秒快速设置。
查看缓存全文
缓存时间: 2026/08/22 19:32
这太疯狂了
一个在攻击者动手之前就先黑入你应用的开源AI
+56,000 颗星。多代理架构。真实可用的概念验证(不仅仅是需要你手动验证的警报)。
自主代理动态执行:侦查 → 利用 → 验证。 覆盖 SQL注入/NoSQL注入 → 服务器端请求伪造(SSRF) → XML外部实体注入(XXE) → 权限控制缺陷 → 身份认证绕过 → 业务逻辑漏洞 → API与云配置错误。 映射到 OWASP Top 10 及更高标准。
30秒完成安装: curl -sSL https://strix.ai/install | bash export STRIX_LLM=“openai/gpt-5.4” # 或任何本地模型 export LLM_API_KEY=“你的密钥” strix –target https://你的应用.com
同样支持 Claude Code / Cursor (npx skills add usestrix/strix)
在它成为每个CI/CD标准之前,赶紧收藏。
仓库地址
来源:https://raw.githubusercontent.com/usestrix/strix/refs/heads/main/scripts/install.sh #!/usr/bin/env bash set -euo pipefail APP=strix REPO=“usestrix/strix” STRIX_IMAGE=“ghcr.io/usestrix/strix-sandbox:1.3.0” MUTED=‘\033[0;2m’ RED=‘\033[0;31m’ GREEN=‘\033[0;32m’ YELLOW=‘\033[1;33m’ CYAN=‘\033[0;36m’ NC=‘\033[0m’ requested_version=\{VERSION:\-\} SKIP\_DOWNLOAD=false raw\_os=(uname -s) os=\(echo "raw_os“ | tr ‘[:upper:]’ ‘[:lower:]’) case “raw\_os" in Darwin\*\) os="macos" ;; Linux\*\) os="linux" ;; MINGW\*\|MSYS\*\|CYGWIN\*\) os="windows" ;; esac arch=(uname -m) if [[ “arch" == "aarch64" \]\]; then arch="arm64" fi if \[\[ "arch” == “x86_64” ]]; then arch=“x86_64” fi if [ “os" = "macos" \] && \[ "arch” = “x86_64” ]; then rosetta_flag=\(sysctl \-n sysctl\.proc\_translated 2\>/dev/null \|\| echo 0\) if \[ "rosetta_flag“ = “1” ]; then arch=“arm64” fi fi combo=“os\-arch” case “combo" in linux\-x86\_64\|linux\-arm64\|macos\-x86\_64\|macos\-arm64\|windows\-x86\_64\) ;; \*\) echo \-e "{RED}不支持的操作系统/架构:os/arch\{NC\}" exit 1 ;; esac archive\_ext="\.tar\.gz" if \[ "os” = “windows” ]; then archive_ext=“.zip” fi target=“os\-arch” if [ “os" = "linux" \]; then if \! command \-v tar \>/dev/null 2\>&1; then echo \-e "{RED}错误:需要 ‘tar’ 但未安装\{NC\}" exit 1 fi fi if \[ "os” = “windows” ]; then if ! command -v unzip >/dev/null 2>&1; then echo -e “\{RED\}错误:需要 'unzip' 但未安装{NC}” exit 1 fi fi INSTALL_DIR=HOME/\.strix/bin mkdir \-p "INSTALL_DIR“ if [ -z “requested\_version" \]; then specific\_version=(curl -s “https://api.github.com/repos/$REPO/releases/latest” | sed -n ‘s/.*“tag_name”: *“v\([^”]*\)“.*/\1/p’) if [[ ? \-ne 0 \|\| \-z "specific_version” ]]; then echo -e “\{RED\}获取版本信息失败{NC}” exit 1 fi else specific_version=requested\_version fi filename="APP-\{specific\_version\}\-{target}\{archive\_ext\}" url="https://github\.com/REPO/releases/download/v\{specific\_version\}/filename“ print_message() { local level=1 local message=2 local color=“” case level in info\) color="{NC}“ ;; success) color=“\{GREEN\}" ;; warning\) color="{YELLOW}” ;; error) color=“\{RED\}" ;; esac echo \-e "{color}\{message\}{NC}” } check_existing_installation() { local found_paths=() while IFS= read -r -d ‘’ path; do found_paths+=(“$path”) done < <(which -a strix 2>/dev/null | tr ‘\n’ ‘\0’ || true) if [ \{\#found\_paths\[@\]\} \-gt 0 \]; then for path in "{found_paths[@]}“; do if [[ ! -e “path" \]\] \|\| \[\[ "path” == “INSTALL\_DIR/strix"\* \]\]; then continue fi if \[\[ \-n "path” ]]; then echo -e “\{MUTED\}发现已存在的 strix:{NC}path" if \[\[ "path” == *“.local/bin”* ]]; then echo -e “\{MUTED\}移除旧的 pipx 安装...{NC}” if command -v pipx >/dev/null 2>&1; then pipx uninstall strix-agent 2>/dev/null || true fi rm -f “path" 2\>/dev/null \|\| true elif \[\[ \-L "path” || -f “path" \]\]; then echo \-e "{MUTED}移除旧安装…\{NC\}" rm \-f "path” 2>/dev/null || true fi fi done fi } check_version() { check_existing_installation if [[ -x “INSTALL\_DIR/strix" \]\]; then installed\_version=(”$INSTALL_DIR/strix“ --version 2>/dev/null | awk ’{print 2\}' \|\| echo ""\) if \[\[ "installed_version“ == “specific\_version" \]\]; then print\_message info "{GREEN}✓ Strix \{NC\}specific_version\{GREEN\} 已安装{NC}” SKIP_DOWNLOAD=true elif [[ -n “installed\_version" \]\]; then print\_message info "{MUTED}已安装版本:\{NC\}installed_version ${MUTED}→ 升级至 \{NC\}specific_version” fi fi } download_and_install() { print_message info “\n\{CYAN\}🦉 正在安装 Strix{NC} \{MUTED\}版本:{NC}specific\_version" print\_message info "{MUTED}平台:\{NC\}target\n” local tmp_dir=\(mktemp \-d\) cd "tmp_dir“ echo -e “\{MUTED\}下载中...{NC}” curl -# -L -o “filename" "url” if [ ! -f “filename" \]; then echo \-e "{RED}下载失败\{NC\}" exit 1 fi echo \-e "{MUTED}解压中…\{NC\}" if \[ "os” = “windows” ]; then unzip -q “filename" mv "strix\-{specific_version}-\{target\}\.exe" "INSTALL_DIR/strix.exe” else tar -xzf “filename" mv "strix\-{specific_version}-\{target\}" "INSTALL_DIR/strix” chmod 755 “INSTALL\_DIR/strix" fi cd \- \> /dev/null rm \-rf "tmp_dir” echo -e “${GREEN}✓ Strix 已安装至 INSTALL\_DIR{NC}” } check_docker() { echo “” if ! command -v docker >/dev/null 2>&1; then echo -e “\{YELLOW\}⚠ 未找到 Docker{NC}” echo -e “\{MUTED\}Strix 需要 Docker 来运行安全沙箱。{NC}” echo -e “\{MUTED\}请安装 Docker:{NC}https://docs.docker.com/get-docker/” echo “” return 1 fi if ! docker info >/dev/null 2>&1; then echo -e “\{YELLOW\}⚠ Docker 守护进程未运行{NC}” echo -e “\{MUTED\}请启动 Docker 并运行:{NC}docker pull STRIX\_IMAGE" echo "" return 1 fi echo \-e "{MUTED}检查沙箱镜像…\{NC\}" if docker image inspect "STRIX_IMAGE” >/dev/null 2>&1; then echo -e “\{GREEN\}✓ 沙箱镜像已就绪{NC}” else echo -e “\{MUTED\}拉取沙箱镜像(可能需要几分钟)...{NC}” if docker pull “STRIX\_IMAGE"; then echo \-e "{GREEN}✓ 沙箱镜像拉取成功\{NC\}" else echo \-e "{YELLOW}⚠ 沙箱镜像拉取失败\{NC\}" echo \-e "{MUTED}你可以稍后手动拉取:${NC}docker pull STRIX\_IMAGE" fi fi return 0 \} add\_to\_path\(\) \{ local config\_file=1 local command=2 if grep \-Fxq "command” “config\_file" 2\>/dev/null; then print\_message info "{MUTED}\{NC\}config_file\{MUTED\} 中已配置 PATH{NC}” elif [[ -w config\_file \]\]; then echo \-e "\\n\# strix" \>\> "config_file“ echo “command" \>\> "config_file” print_message info “${MUTED}已成功将 ${NC}strix ${MUTED}添加至 \{NC\}config_file \{MUTED\}的 \\PATH${NC}” else print_message warning “请手动将以下目录添加到 $config_file(或类似文件):” print_message info “ command" fi \} setup\_path\(\) \{ XDG\_CONFIG\_HOME={XDG_CONFIG_HOME:-HOME/\.config\} current\_shell=(basename “$SHELL”) case current\_shell in fish\) config\_files="HOME/.config/fish/config.fish“ ;; zsh) config_files=“\{ZDOTDIR:\-HOME}/.zshrc \{ZDOTDIR:\-HOME}/.zshenv $XDG_CONFIG_HOME/zsh/.zshrc XDG\_CONFIG\_HOME/zsh/\.zshenv" ;; bash\) config\_files="HOME/.bashrc $HOME/.bash_profile $HOME/.profile $XDG_CONFIG_HOME/bash/.bashrc XDG\_CONFIG\_HOME/bash/\.bash\_profile" ;; ash\) config\_files="HOME/.ashrc HOME/\.profile /etc/profile" ;; sh\) config\_files="HOME/.ashrc HOME/\.profile /etc/profile" ;; \*\) config\_files="HOME/.bashrc $HOME/.bash_profile $XDG_CONFIG_HOME/bash/.bashrc $XDG_CONFIG_HOME/bash/.bash_profile” ;; esac config_file=“” for file in $config_files; do if [[ -f file \]\]; then config\_file=file break fi done if [[ -z $config_file ]]; then print_message warning “未找到 current\_shell 的配置文件。你可能需要手动添加 PATH:" print\_message info " export PATH=INSTALL_DIR:\PATH" elif \[\[ ":PATH:” != *“:$INSTALL_DIR:”* ]]; then case current\_shell in fish\) add\_to\_path "config_file“ “fish_add_path INSTALL\_DIR" ;; zsh\) add\_to\_path "config_file” “export PATH=INSTALL\_DIR:\\PATH” ;; bash) add_to_path “config\_file" "export PATH=INSTALL_DIR:\PATH" ;; ash\) add\_to\_path "config_file” “export PATH=INSTALL\_DIR:\\PATH” ;; sh) add_to_path “config\_file" "export PATH=INSTALL_DIR:\PATH" ;; \*\) export PATH=INSTALL_DIR:$PATH print_message warning “请手动将以下目录添加到 config\_file(或类似文件):" print\_message info " export PATH=INSTALL_DIR:\PATH" ;; esac fi if \[ \-n "{GITHUB_ACTIONS-}” ] && [ “\{GITHUB\_ACTIONS\}" == "true" \]; then echo "INSTALL_DIR” >> “$GITHUB_PATH” print_message info “已将 INSTALL\_DIR 添加至 \\GITHUB_PATH” fi } verify_installation() { export PATH=“INSTALL\_DIR:PATH” local which_strix=\(which strix 2\>/dev/null \|\| echo ""\) if \[\[ "which_strix“ != “INSTALL\_DIR/strix" && "which_strix” != “INSTALL\_DIR/strix\.exe" \]\]; then if \[\[ \-n "which_strix” ]]; then echo -e “\{YELLOW\}⚠ 发现冲突的 strix:{NC}which\_strix" echo \-e "{MUTED}尝试移除…\{NC\}" if rm \-f "which_strix” 2>/dev/null; then echo -e “\{GREEN\}✓ 已移除冲突安装{NC}” else echo -e “\{YELLOW\}无法自动移除。{NC}” echo -e “\{MUTED\}请手动移除:{NC}rm which\_strix" fi fi fi if \[\[ \-x "INSTALL_DIR/strix” ]]; then local version=\("INSTALL_DIR/strix“ --version 2>/dev/null | awk ’{print 2\}' \|\| echo "unknown"\) echo \-e "{GREEN}✓ Strix \{NC\}version\{GREEN\} 已就绪{NC}“ fi } check_version if [ “SKIP\_DOWNLOAD" = false \]; then download\_and\_install fi setup\_path verify\_installation check\_docker echo "" echo \-e "{CYAN}” echo “ ███████╗████████╗██████╗ ██╗██╗ ██╗“ echo “ ██╔════╝╚══██╔══╝██╔══██╗██║╚██╗██╔╝“ echo “ ███████╗ ██║ ██████╔╝██║ ╚███╔╝ “ echo “ ╚════██║ ██║ ██╔══██╗██║ ██╔██╗ “ echo “ ███████║ ██║ ██║ ██║██║██╔╝ ██╗“ echo “ ╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═╝“ echo -e “\{NC\}" echo \-e "{MUTED} AI 渗透测试代理\{NC\}" echo "" echo \-e "{MUTED}开始使用:${NC}” echo “” echo -e “ \{CYAN\}1\.{NC} 设置环境变量:“ echo -e “ \{MUTED\}export LLM\_API\_KEY='你的\-api\-密钥'{NC}“ echo -e “ \{MUTED\}export STRIX\_LLM='openai/gpt\-5\.4'{NC}“ echo “” echo -e “ \{CYAN\}2\.{NC} 运行渗透测试:“ echo -e “ \{MUTED\}strix \-\-target https://example\.com{NC}“ echo “” echo -e “${MUTED}更多信息请访问 \{NC\}https://strix\.ai" echo \-e "{MUTED}支持的模型 \{NC\}https://docs\.strix\.ai/llm\-providers/overview" echo \-e "{MUTED}加入社区 \{NC\}https://discord\.gg/strix\-ai" echo "" echo \-e "{YELLOW}→${NC} 运行 \{MUTED\}source ~/\.(basename SHELL\)rc{NC} 或打开新终端” echo “”
相似文章
usestrix/strix
Strix 是一个开源的 AI 智能体工具包,能够自主对应用程序进行黑客攻击以发现和修复漏洞,并提供经过验证的概念验证,避免误报。
@XAMTO_AI: 用过传统手动渗透测试的都懂!! 工具开一堆,Burp、Nmap、Metasploit来回切,recon半天exploit半天,PoC还得自己手写,报告写到怀疑人生,假阳性满天飞,真实漏洞反而漏掉…… 有位开发者实在看不下去了,直接开源了一…
Strix is an open-source AI penetration testing tool that uses autonomous AI agents to perform real vulnerability discovery and exploitation, generating working PoCs and compliance-ready reports. It supports multi-agent orchestration, CI/CD integration, and various LLMs, aiming to replace manual pentesting with AI-driven automation.
@servasyy_ai: 如果你一个人维护项目,没有安全团队,上线前心里总没底,那么这东西基本就是给你的礼物 说实话,市面上叫"AI 安全扫描"的东西我基本不信。 扫完给你报一屏警告,九成是误报,纯浪费时间。 直到我扒了下这两天 GitHub 日榜第一的 stri…
Strix 是一个开源的 AI 渗透测试工具,通过在 Docker 沙箱中动态运行应用、使用 Caido 代理拦截并利用 Python 沙箱编写实际可用的 PoC 来发现和验证漏洞,支持多 agent 协作、自动生成补丁和 CI/CD 集成,比传统误报率高的扫描器更实用。
@MAXdeg0: 这极度危险 发现了一个无需人类输入的AI红队 PentAGI。扫描器 —> 利用器 —> 报告器 —>…
一个名为PentAGI的自主AI红队系统使用三个代理来扫描、利用和报告漏洞,使严肃的安全测试更加易用,同时强调仅限授权使用。
@elder_plinius:介绍:T3MP3ST!!!自主黑客机器人突击队 带来风暴 你最喜欢的编程代理现已全栈红队……
T3MP3ST 是一个开源框架,能够将 Claude Code、Codex 等 AI 编程代理转化为自主红队工具,在安全基准测试和真实 CVE 检测中实现了高通过率。