#!/bin/bash # 进入services目录 cd plugins/services # 需要清理exploit的文件列表(保留ssh, redis, ms17010的exploit) FILES_TO_CLEAN="elasticsearch.go findnet.go ftp.go kafka.go ldap.go mongodb.go mssql.go neo4j.go netbios.go oracle.go postgresql.go rabbitmq.go rdp.go rsync.go smb.go smb2.go smbghost.go smbinfo.go smtp.go snmp.go telnet.go vnc.go webpoc.go webtitle.go" for file in $FILES_TO_CLEAN; do if [ -f "$file" ]; then echo "Cleaning $file..." # 备份文件 cp "$file" "${file}.backup" # 使用awk删除Exploit函数 awk ' BEGIN { skip = 0; brace_count = 0; } /^\/\/ Exploit.*利用操作/ { skip = 1; brace_count = 0; next; } /^func.*Exploit\(/ { if (!skip) { skip = 1; brace_count = 0; } next; } skip && /\{/ { brace_count += gsub(/\{/, ""); brace_count -= gsub(/\}/, ""); if (brace_count <= 0 && /\}/) { skip = 0; next; } } skip && /\}/ { brace_count -= gsub(/\}/, ""); brace_count += gsub(/\{/, ""); if (brace_count <= 0) { skip = 0; next; } } !skip { print; } ' "${file}.backup" > "$file" echo "✅ Cleaned $file" fi done echo "✅ All exploit functions cleaned!"