Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nessus 破解 — macOS

Mac 版 Nessus 破解安装教程,含自动破解脚本、最新漏洞插件包,一步到位。

所需文件

  • Nessus-10.5.0.dmg — Nessus macOS 安装包
  • all-2.0.tar.gz — 漏洞插件包(约 700MB+)
  • install_nessus.sh — 自动破解脚本

安装

双击安装,一路继续

image-20250606142619462

image-20250606142738750

image-20250606142832016

image-20250606142848519

image-20250606142923531

此时无法扫描

image-20250606143052761

破解

运行破解脚本 install_nessus.sh

#!/bin/zsh
set -e

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PLUGIN_FILE="${SCRIPT_DIR}/all-2.0.tar.gz"
FEED_FILE="/Library/Nessus/run/var/nessus/plugin_feed_info.inc"
FEED_FILE_LIB="/Library/Nessus/run/lib/nessus/plugins/plugin_feed_info.inc"
NESSUSCLI="/Library/Nessus/run/sbin/nessuscli"
NESSUSD_NAME="com.tenablesecurity.nessusd"

# ============================================================
# Check root
# ============================================================
if [[ $(id -u) -ne 0 ]]; then
    echo "[ERROR] Please run with sudo / as root"
    exit 1
fi

# ============================================================
# Check if Nessus is installed
# ============================================================
if [[ ! -f "$NESSUSCLI" ]]; then
    echo "[ERROR] Nessus not installed. Run 1.sh first to install Nessus."
    exit 1
fi

echo "========================================="
echo " Nessus Crack & Plugin Installer"
echo "========================================="
echo ""

# ============================================================
# Step 1: Stop Nessus
# ============================================================
echo "[1/5] Stopping Nessus service..."
launchctl stop "$NESSUSD_NAME" 2>/dev/null || true
sleep 3
echo "  -> Nessus stopped"

# ============================================================
# Step 2: Check if already cracked
# ============================================================
CRACKED=false
if [[ -f "$FEED_FILE" ]]; then
    if grep -q "ProfessionalFeed" "$FEED_FILE" 2>/dev/null; then
        CRACKED=true
    fi
fi

if $CRACKED; then
    echo "[2/5] Already cracked (ProfessionalFeed detected), skip cracking step"
else
    echo "[2/5] Cracking..."

    # Unlock if locked
    chflags nouchg "$FEED_FILE" 2>/dev/null || true
    chflags -R nouchg /Library/Nessus/run/lib/nessus/ 2>/dev/null || true

    # Configure nessusd
    "$NESSUSCLI" fix --set safe_checks=false &>/dev/null
    "$NESSUSCLI" fix --set backend_log_level=performance &>/dev/null
    "$NESSUSCLI" fix --set auto_update=false &>/dev/null
    "$NESSUSCLI" fix --set auto_update_ui=false &>/dev/null
    "$NESSUSCLI" fix --set disable_core_updates=true &>/dev/null
    "$NESSUSCLI" fix --set report_crashes=false &>/dev/null
    "$NESSUSCLI" fix --set send_telemetry=false &>/dev/null

    # Get latest version number from official source
    echo "  -> Getting plugin version..."
    vernum=$(curl -s https://plugins.nessus.org/v2/plugins.php 2>/dev/null || echo "202607081825")
    echo "  -> Version: $vernum"

    # Write cracked feed info
    cat > "$FEED_FILE" <<EOF
PLUGIN_SET = "${vernum}";
PLUGIN_FEED = "ProfessionalFeed (Direct)";
PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";
EOF

    # Copy to lib directory
    cp "$FEED_FILE" "$FEED_FILE_LIB"

    # Lock files to prevent overwrite by Nessus auto-update
    chflags uchg "$FEED_FILE"
    chflags -R uchg /Library/Nessus/run/lib/nessus/
    chflags nouchg "$FEED_FILE_LIB"
    chflags nouchg /Library/Nessus/run/lib/nessus/plugins

    echo "  -> Crack done: ProfessionalFeed (Direct) written & locked"
fi

# ============================================================
# Step 3: Install / Update plugins
# ============================================================
echo "[3/5] Installing plugins from: $PLUGIN_FILE"

if [[ ! -f "$PLUGIN_FILE" ]]; then
    echo "[ERROR] $PLUGIN_FILE not found!"
    echo "Please put all-2.0.tar.gz in: $SCRIPT_DIR"
    exit 1
fi

PLUGIN_SIZE=$(ls -lh "$PLUGIN_FILE" | awk '{print $5}')
echo "  -> Plugin file size: $PLUGIN_SIZE"

# Unlock feed file temporarily for plugin update
chflags nouchg "$FEED_FILE" 2>/dev/null || true

# Update plugins
"$NESSUSCLI" update "$PLUGIN_FILE"

# Re-write cracked feed info (update may have overwritten it)
if ! $CRACKED; then
    cat > "$FEED_FILE" <<EOF
PLUGIN_SET = "${vernum:-202607081825}";
PLUGIN_FEED = "ProfessionalFeed (Direct)";
PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";
EOF
else
    echo "  -> Re-writing cracked feed after update..."
    cat > "$FEED_FILE" <<EOF
PLUGIN_SET = "${vernum:-202607081825}";
PLUGIN_FEED = "ProfessionalFeed (Direct)";
PLUGIN_FEED_TRANSPORT = "Tenable Network Security Lightning";
EOF
fi

cp "$FEED_FILE" "$FEED_FILE_LIB"

# Re-lock
chflags uchg "$FEED_FILE"
chflags -R uchg /Library/Nessus/run/lib/nessus/ 2>/dev/null || true
chflags nouchg "$FEED_FILE_LIB" 2>/dev/null || true
chflags nouchg /Library/Nessus/run/lib/nessus/plugins 2>/dev/null || true

echo "  -> Plugins installed & feed locked"

# ============================================================
# Step 4: Start Nessus
# ============================================================
echo "[4/5] Starting Nessus service..."
launchctl start "$NESSUSD_NAME"
echo "  -> Nessus started"

# ============================================================
# Step 5: Wait for plugin compilation
# ============================================================
echo "[5/5] Waiting for plugins to compile..."
sleep 10

zen=0
while [[ $zen -ne 100 ]]; do
    resp=$(curl -sL -k https://localhost:8834/server/status 2>/dev/null)
    if [[ -z "$resp" ]]; then
        echo "  Waiting for Nessus web service..."
        sleep 10
        continue
    fi

    engine_progress=$(echo "$resp" | python3 -c "
import sys,json
try:
    d=json.load(sys.stdin)
    p=d.get('detailed_status',{}).get('engine_status',{}).get('progress',0)
    s=d.get('detailed_status',{}).get('engine_status',{}).get('status','')
    print(f'engine: {p}% - {s}')
except:
    print('parsing...')
" 2>/dev/null)

    echo "  $(date +%H:%M:%S) $engine_progress"

    if echo "$engine_progress" | grep -q "100%"; then
        zen=100
    else
        sleep 10
    fi
done

echo ""
echo "========================================="
echo " All done! Nessus is ready."
echo " Open: https://localhost:8834"
echo "========================================="

等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待等待脚本运行结束

image-20260709134939450

image-20260709140614971

成功破解

image-20260709140544671

image-20260709141113896

后续更新插件

将新的 all-2.0.tar.gz 替换到目录中,再次执行:

sudo ./install_nessus.sh

脚本检测到已破解,跳过步骤 2.2,仅更新插件 + 重新锁定。

Releases

Packages

Contributors

Languages