#!/bin/bash
# @desc: nmap 自动扫描: 全端口 + 服务识别 + 漏洞脚本
# @usage: wcl nmap <域名或IP>
#   例: wcl nmap 1.1.1.1
#   参数: <域名或IP>  扫描目标
#   内部执行: -Pn -p- -sV --script vuln --stats-every 10s
#   结果保存为: scan_<目标>_<时间>.txt

# ===========================
#      nmap 自动扫描脚本
# ===========================
# 使用方法：
#   ./nscan.sh <域名或IP>
#
# 示例：
#   ./nscan.sh 1.1.1.1
#   ./nscan.sh example.com
#
# 本脚本功能：
#   对目标执行以下 nmap 扫描：
#       -Pn               # 跳过ICMP探测，强制扫描
#       -p-               # 扫描全端口
#       -sV               # 识别服务版本
#       --script vuln     # 调用漏洞检测脚本集
#       --stats-every 10s # 每 10 秒输出一次进度
#
#   同时将扫描结果保存为：scan_<目标>_<时间>.txt
# ===========================

if [ $# -lt 1 ]; then
    echo "用法：$0 <域名或IP>"
    exit 1
fi

TARGET="$1"

# 生成带时间戳的输出文件
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
OUTPUT_FILE="scan_${TARGET}_${TIMESTAMP}.txt"

echo "开始扫描目标：$TARGET"
echo "扫描结果输出到：$OUTPUT_FILE"
echo

nmap -Pn -p- -sV --script vuln --stats-every 10s "$TARGET" -oN "$OUTPUT_FILE"

echo
echo "扫描完成，结果已保存：$OUTPUT_FILE"
