0Pricing
Cyber Security Academy · 课时

网络枚举脚本编写

使用 Nmap NSE 脚本和自定义 Python 扫描器自动执行侦察。

网络枚举脚本编写 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

为何自动化侦察

在大型网络中,手动扫描速度慢且容易出错。脚本可以将 Nmap、Netcat 和其他工具封装成可重复执行的流水线,解析输出,并将结果传递给后续分析。

Nmap NSE 脚本概览

Nmap 脚本引擎(NSE)针对已发现的服务运行 Lua 脚本。脚本按以下类别组织:身份验证、暴力破解、默认、发现、漏洞利用、安全和漏洞。

# Run default safe scripts
nmap -sC 192.168.1.100

# List all scripts
ls /usr/share/nmap/scripts/ | grep http

# Run specific script
nmap --script=http-title 192.168.1.100

常用 NSE 脚本

用于枚举的关键脚本包括:http-title、http-headers、smb-enum-shares、ftp-anon、dns-brute 和 ssh-hostkey。

nmap --script=smb-enum-shares -p 445 192.168.1.100
nmap --script=ftp-anon -p 21 192.168.1.100
nmap --script=dns-brute --script-args dns-brute.domain=target.com 192.168.1.1

漏洞类别脚本

vuln 类别用于检查已知漏洞。vuln 脚本产生的网络噪声更大,并且可能导致服务崩溃——只有获得明确授权后才能使用。

sudo nmap --script=vuln 192.168.1.100

# Specific vuln checks:
nmap --script=ms17-010 -p 445 192.168.1.100  # EternalBlue
nmap --script=http-shellshock 192.168.1.100

使用 Python 解析 Nmap XML 输出

Nmap 的 -oX XML 输出可供机器读取。Python 的 python-libnmap 库可以简洁地解析这些输出,用于生成自定义报告或传递给其他工具。

# Install
pip install python-libnmap

# Parse results
from libnmap.parser import NmapParser
report = NmapParser.parse_fromfile("scan.xml")
for host in report.hosts:
    for svc in host.services:
        if svc.state == "open":
            print(f"{host.address}:{svc.port} {svc.service}")

简单的 Python 端口扫描器

使用 Python 的 socket 模块构建一个最小端口扫描器。在无法使用 Nmap 或需要自定义扫描方式时非常有用。

import socket
from concurrent.futures import ThreadPoolExecutor

def scan_port(host, port):
    try:
        s = socket.socket()
        s.settimeout(0.5)
        s.connect((host, port))
        print(f"Open: {port}")
        s.close()
    except: pass

with ThreadPoolExecutor(100) as ex:
    for p in range(1, 1025):
        ex.submit(scan_port, "192.168.1.100", p)

Bash 枚举单行命令

Bash 可以使用 /dev/tcp 伪设备快速枚举主机和端口,无需任何外部工具。

# Check if port is open (bash built-in)
timeout 1 bash -c "echo >/dev/tcp/192.168.1.100/80" && echo open

# Loop over hosts
for i in $(seq 1 254); do
  ping -c1 -W1 192.168.1.$i &>/dev/null && echo "192.168.1.$i up"
done

DNS 枚举脚本

使用 dnsrecon、amass 或自定义脚本自动执行 DNS 枚举,查询 A、MX、NS、TXT 和 CNAME 记录,并通过暴力破解发现子域名。

dnsrecon -d target.com -t std
amass enum -d target.com

# Manual zone transfer attempt
dig axfr target.com @ns1.target.com

使用 enum4linux 枚举 SMB 信息

enum4linux 可以自动执行 SMB 枚举:在无需身份验证的情况下,从 Windows/Samba 主机获取共享、用户、组、密码策略和操作系统信息。

enum4linux -a 192.168.1.100

# -a = all enumeration
# Shows: shares, users, groups,
#        password policy, OS version

SNMP 枚举

SNMP v1/v2c 使用共同体字符串进行身份验证(通常为“public”)。查询 SNMP 可以获取系统信息、运行中的进程、网络接口和已安装的软件。

# Query with default community string
snmpwalk -c public -v2c 192.168.1.100

# Get system info only
snmpget -c public -v2c 192.168.1.100 1.3.6.1.2.1.1.1.0

# Brute force community strings
onesixtyone -c community.txt 192.168.1.100

整理输出

对于大型安全评估,结构化输出至关重要。请为每个目标使用单独的目录,采用一致的命名方式(target_service_date),并使用 tmux 日志记录等工具捕获所有终端输出。

快速检查

哪个 Nmap NSE 类别会检查已知漏洞?

总结:枚举脚本

脚本可以将单个工具命令转变为可重复执行的侦察流程。结合使用 NSE 脚本进行快速的定向检查,使用 Python 进行自定义解析和自动化,使用 Bash 快速发现主机,并使用专用工具(enum4linux、dnsrecon、snmpwalk)执行特定协议的枚举。

常见问题解答

「网络枚举脚本编写」课时是免费的吗?

是的 — 「网络枚举脚本编写」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「网络枚举脚本编写」这节课中我会学到什么?

使用 Nmap NSE 脚本和自定义 Python 扫描器自动执行侦察。 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「网络枚举脚本编写」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Nmap 端口扫描技术
  2. 服务与操作系统指纹识别
  3. Netcat:网络瑞士军刀
  4. 网络枚举脚本编写
← 返回 Cyber Security Academy