#!/usr/bin/env bash # quick-setup.sh — Kali 2026.1 一键初始化 # 在全新 Kali 系统上运行此脚本,自动完成: # 1. 系统更新 # 2. 安装 Kali 2026.1 新工具 # 3. 配置 Kali 原生 MCP # 4. 安装非预装的逆向工具 # 5. 刷新工具索引 # 6. 输出配置报告 # # 用法: # sudo bash kali/scripts/quick-setup.sh [--skip-update] [--minimal] set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # ─── 参数 ────────────────────────────────────────────────────────────────────────── SKIP_UPDATE=false MINIMAL=false for arg in "$@"; do case "$arg" in --skip-update) SKIP_UPDATE=true ;; --minimal) MINIMAL=true ;; esac done # ─── 颜色 ────────────────────────────────────────────────────────────────────────── RED='\033[31m' GREEN='\033[32m' YELLOW='\033[33m' CYAN='\033[36m' BOLD='\033[1m' RESET='\033[0m' banner() { echo -e "\n${BOLD}${CYAN}═══ $* ═══${RESET}\n"; } ok() { echo -e "${GREEN}[✓]${RESET} $*"; } warn() { echo -e "${YELLOW}[!]${RESET} $*"; } info() { echo -e "${CYAN}[i]${RESET} $*"; } # ─── 检查权限 ────────────────────────────────────────────────────────────────────── if [[ $EUID -ne 0 ]]; then echo "请使用 root 权限运行: sudo bash $0" exit 1 fi # ─── 检查 Kali 版本 ──────────────────────────────────────────────────────────────── banner "检查系统版本" if [[ -f /etc/os-release ]]; then . /etc/os-release info "系统: $PRETTY_NAME" info "版本: ${VERSION:-unknown}" info "内核: $(uname -r)" else warn "无法检测系统版本,继续执行..." fi # ─── 系统更新 ────────────────────────────────────────────────────────────────────── if [[ "$SKIP_UPDATE" != "true" ]]; then banner "系统更新" apt-get update -qq apt-get upgrade -y -qq ok "系统已更新" else info "跳过系统更新 (--skip-update)" fi # ─── 安装 Kali 2026.1 新工具 ────────────────────────────────────────────────────── banner "安装 Kali 2026.1 新工具" NEW_TOOLS_2026_1=( "adaptixc2" "atomic-operator" "fluxion" "gef" "metasploitmcp" "sstimap" "wpprobe" "xsstrike" ) NEW_TOOLS_2025_4=( "evil-winrm-py" "hexstrike-ai" ) for tool in "${NEW_TOOLS_2026_1[@]}" "${NEW_TOOLS_2025_4[@]}"; do if dpkg -l "$tool" &>/dev/null 2>&1; then ok "$tool 已安装" else info "安装 $tool ..." apt-get install -y -qq "$tool" 2>/dev/null && ok "$tool 安装成功" || warn "$tool 安装失败(可能尚未在你的源中)" fi done # ─── 安装 Kali 原生 MCP ────────────────────────────────────────────────────────── banner "配置 Kali 原生 MCP" MCP_TOOLS=("mcp-kali-server" "metasploitmcp" "hexstrike-ai") for tool in "${MCP_TOOLS[@]}"; do if dpkg -l "$tool" &>/dev/null 2>&1; then ok "$tool 已安装" else info "安装 $tool ..." apt-get install -y -qq "$tool" 2>/dev/null && ok "$tool 安装成功" || warn "$tool 安装失败" fi done # ─── 安装 AD/内网渗透工具 ───────────────────────────────────────────────────────── if [[ "$MINIMAL" != "true" ]]; then banner "安装 AD/内网渗透工具" AD_TOOLS=("coercer" "netexec" "responder" "bloodhound" "certipy-ad") for tool in "${AD_TOOLS[@]}"; do if dpkg -l "$tool" &>/dev/null 2>&1; then ok "$tool 已安装" else info "安装 $tool ..." apt-get install -y -qq "$tool" 2>/dev/null && ok "$tool 安装成功" || warn "$tool 安装失败" fi done fi # ─── 安装非预装逆向工具 ─────────────────────────────────────────────────────────── banner "安装逆向分析工具" # jadx(Kali 不预装,从 GitHub 下载) if ! command -v jadx &>/dev/null; then info "安装 jadx(从 GitHub Release)..." bash "$SCRIPT_DIR/bootstrap-reverse.sh" jadx --skip-refresh 2>/dev/null && ok "jadx 安装成功" || warn "jadx 安装失败" else ok "jadx 已可用" fi # Node.js(部分 MCP 需要) if ! command -v node &>/dev/null; then info "安装 Node.js ..." apt-get install -y -qq nodejs npm && ok "Node.js 安装成功" || warn "Node.js 安装失败" else ok "Node.js 已可用: $(node -v)" fi # frida-tools if ! command -v frida &>/dev/null; then info "安装 frida-tools ..." pip3 install --break-system-packages frida-tools 2>/dev/null && ok "frida-tools 安装成功" || warn "frida-tools 安装失败" else ok "frida 已可用" fi # ─── 配置 MCP 客户端 ────────────────────────────────────────────────────────────── banner "配置 MCP 客户端" # 检测实际用户(sudo 下 $HOME 可能是 /root) REAL_USER="${SUDO_USER:-root}" REAL_HOME="$(getent passwd "$REAL_USER" 2>/dev/null | cut -d: -f6 || true)" if [[ -z "$REAL_HOME" || ! -d "$REAL_HOME" ]]; then REAL_USER="root" REAL_HOME="$(getent passwd root 2>/dev/null | cut -d: -f6 || true)" fi if [[ -z "$REAL_HOME" || ! -d "$REAL_HOME" ]]; then REAL_HOME="/root" fi MCP_CONFIG_DIR="$REAL_HOME/.claude" MCP_CONFIG="$MCP_CONFIG_DIR/mcp.json" if command -v jq &>/dev/null; then mkdir -p "$MCP_CONFIG_DIR" if [[ ! -f "$MCP_CONFIG" ]]; then echo '{"mcpServers":{}}' > "$MCP_CONFIG" fi # 注册 kali-server jq '.mcpServers["kali-server"] = {"command": "kali-server-mcp", "args": ["--port", "5000"]}' "$MCP_CONFIG" > /tmp/mcp-tmp.json && mv /tmp/mcp-tmp.json "$MCP_CONFIG" # 注册 metasploit-mcp jq '.mcpServers["metasploit-mcp"] = {"command": "metasploitmcp", "args": ["--transport", "stdio"]}' "$MCP_CONFIG" > /tmp/mcp-tmp.json && mv /tmp/mcp-tmp.json "$MCP_CONFIG" # 注册 hexstrike jq '.mcpServers["hexstrike"] = {"command": "hexstrike-ai", "args": []}' "$MCP_CONFIG" > /tmp/mcp-tmp.json && mv /tmp/mcp-tmp.json "$MCP_CONFIG" # 注册 jshook jq '.mcpServers["jshook"] = {"command": "npx", "args": ["-y", "@jshookmcp/jshook@0.3.4"], "env": {"JSHOOK_BASE_PROFILE": "search"}}' "$MCP_CONFIG" > /tmp/mcp-tmp.json && mv /tmp/mcp-tmp.json "$MCP_CONFIG" chown "$REAL_USER:$REAL_USER" "$MCP_CONFIG" "$MCP_CONFIG_DIR" ok "MCP 配置已写入: $MCP_CONFIG" else warn "未安装 jq,无法自动配置 MCP。请手动复制 kali/mcp-kali-example.json" info "安装 jq: apt install jq" fi # ─── 刷新工具索引 ────────────────────────────────────────────────────────────────── banner "刷新工具索引" chmod +x "$SCRIPT_DIR"/*.sh "$SCRIPT_DIR"/lib/*.sh sudo -u "$REAL_USER" bash "$SCRIPT_DIR/refresh-tool-index.sh" 2>/dev/null || bash "$SCRIPT_DIR/refresh-tool-index.sh" ok "工具索引已刷新" # ─── 输出报告 ────────────────────────────────────────────────────────────────────── banner "配置完成" echo -e "${BOLD}✅ Kali 2026.1 逆向技能路由包已配置完成${RESET}" echo "" echo " 安装路径: $(cd "$SCRIPT_DIR/../.." && pwd)" echo " MCP 配置: $MCP_CONFIG" echo " 工具索引: $(cd "$SCRIPT_DIR/../.." && pwd)/skills/tool-index.md" echo "" echo " Kali 原生 MCP:" command -v kali-server-mcp &>/dev/null && echo " ✓ mcp-kali-server" || echo " ✗ mcp-kali-server" command -v metasploitmcp &>/dev/null && echo " ✓ metasploitmcp" || echo " ✗ metasploitmcp" command -v hexstrike-ai &>/dev/null && echo " ✓ hexstrike-ai" || echo " ✗ hexstrike-ai" echo "" echo " 2026.1 新工具:" for tool in "${NEW_TOOLS_2026_1[@]}"; do if dpkg -l "$tool" &>/dev/null 2>&1; then echo " ✓ $tool" else echo " ✗ $tool" fi done echo "" echo " 下一步:" echo " 1. 告诉你的 AI 客户端读取 kali/RULES-kali.md" echo " 2. 或者直接问 AI:'读一下 kali/RULES-kali.md 并执行配置'" echo " 3. 之后遇到安全/逆向任务会自动路由" echo ""