You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何格式化Nmap扫描结果以提取HTTP服务IP与端口

从Nmap Grepable结果提取HTTP类端口并自动执行Web扫描

需求背景

需要从Nmap的grepable格式结果中识别http、https、http-alt相关端口,提取IP和端口组合成IP:Port格式,自动调用Dirb和Nikto完成Web应用扫描。

解决方案步骤

  • 过滤HTTP相关行:用grep筛选包含目标服务关键字的行
  • 提取IP和端口:通过文本解析工具拆分grepable格式的字段,分离出IP和端口号
  • 批量执行扫描:循环处理每个目标,自动调用Dirb和Nikto并保存结果

完整Bash脚本

#!/bin/bash

# 检查输入参数是否合法
if [ $# -ne 1 ]; then
    echo "用法: $0 <nmap_grepable_output.txt>"
    exit 1
fi

NMAP_FILE="$1"

# 遍历所有匹配HTTP类服务的行,提取目标并执行扫描
grep -E "(http|https|http-alt)" "$NMAP_FILE" | while read -r line; do
    # 从grepable格式中提取IP(第2个空格分隔字段)
    IP=$(echo "$line" | awk '{print $2}')
    # 提取端口字符串后截取端口号(第5个空格分隔字段,按/拆分取第一部分)
    PORT=$(echo "$line" | awk '{print $5}' | cut -d'/' -f1)
    TARGET="${IP}:${PORT}"

    echo "=== 开始扫描目标: $TARGET ==="

    # 执行Dirb扫描,结果保存到单独文件
    dirb "http://${TARGET}" -o "dirb_${TARGET//:/_}.txt"
    echo "Dirb扫描完成,结果已保存到dirb_${TARGET//:/_}.txt"

    # 执行Nikto扫描,结果保存到单独文件
    nikto -h "${TARGET}" -o "nikto_${TARGET//:/_}.txt"
    echo "Nikto扫描完成,结果已保存到nikto_${TARGET//:/_}.txt"

    echo -e "=== $TARGET 扫描结束 ===\n"
done

脚本说明

  • 输入要求:传入Nmap生成的grepable格式文件(可通过nmap -oG 文件名 目标IP/网段生成)
  • 字段解析逻辑:Nmap grepable格式每行的第2个字段是目标IP,第5个字段是端口状态字符串(如8000/open/tcp//http-alt///),通过cut -d'/' -f1截取端口号
  • 结果管理:每个目标的扫描结果单独保存为文件,避免不同目标结果互相覆盖
  • 服务适配:自动匹配http、https、http-alt三类HTTP相关服务端口

使用示例

  1. 生成Nmap grepable结果:
nmap -p 1-65535 -oG web_scan_results.txt 192.168.1.0/24
  1. 赋予脚本执行权限并运行:
chmod +x auto_web_scan.sh
./auto_web_scan.sh web_scan_results.txt

内容的提问来源于stack exchange,提问作者AlexWPryor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:54:23