十、Discovery(发现)

(一)Account Discovery(账户发现)

image-20260129115036198

图中展示的是 Kali Linux 系统中Account Discovery(账户发现)分类下的一个核心工具:smtp-user-enum。该工具专门用于在 SMTP 服务上执行用户账户枚举,是渗透测试信息收集阶段的重要装备,帮助安全人员识别目标邮件服务器上存在的有效邮箱账户,从而为后续的钓鱼或暴力破解攻击提供精准目标。

1.smtp-user-enum

smtp-user-enum 是一款基于 Perl 的命令行工具,通过向目标 SMTP 服务器发送 VRFYEXPNRCPT 命令,根据服务器返回的响应来判断指定的用户名或邮箱地址是否存在于服务器上。它常用于 Solaris 等系统上的 SendMail 服务,但也兼容其他支持这些命令的 SMTP 服务器。

核心作用

  • 账户枚举:快速识别目标邮件服务器上存在的用户账户,为后续攻击提供有效用户名列表。
  • 信息收集:在渗透测试初期,帮助测试人员了解目标网络的邮件系统结构和用户分布。
  • 安全审计:用于评估邮件服务器是否暴露了过多的用户信息,是否存在被枚举的风险。

常用命令

  • 使用 VRFY 模式枚举单个用户:

    smtp-user-enum -M VRFY -u user -t 192.168.1.100
    
    • -M VRFY:指定使用 VRFY 命令进行枚举。
    • -u user:指定要测试的用户名。
    • -t 192.168.1.100:指定目标 SMTP 服务器的 IP 地址。
  • 使用字典文件批量枚举用户:

    smtp-user-enum -M VRFY -U users.txt -t 192.168.1.100
    
    • -U users.txt:指定包含用户名列表的字典文件。
  • 使用多线程提高枚举速度:

    smtp-user-enum -M VRFY -U users.txt -t 192.168.1.100 -T 10
    
    • -T 10:指定使用 10 个线程同时进行枚举。
  • 启用详细模式查看详细输出:

    smtp-user-enum -M VRFY -u user -t 192.168.1.100 -v
    
    • -v:启用详细模式,显示每一步的枚举过程和服务器响应。

(二)Active Directory(活动发现)

image-20260129115509279

图中展示的是 Kali Linux 系统中Active Directory分类下的四个核心工具:azurehoundbloodhoundbloodhound-pythonsharphound。这些工具专用于 Active Directory 域环境的渗透测试与安全审计,通过收集域内用户、组、计算机、权限等关系数据,借助图论分析技术可视化复杂权限路径,帮助红队发现提权漏洞,也辅助蓝队加固防御。

1.azurehound

azurehound 是一个用于收集 Azure AD(一种基于云的身份和访问管理——Identity and Access Management(IAM)服务。) 和 Azure RM( 它提供一个管理层用于在 Azure 订阅中创建、更新和删除资源。 部署后,可以使用访问控制、锁和标记等管理功能来保护和组织资源) 数据的强大工具,通过 Microsoft Graph 和 Azure REST API 提取数据,为 BloodHound 提供 Azure 环境的分析能力。

核心作用

  • 数据收集:从 Azure 环境中提取用户、组、角色、资源等信息。
  • 跨云域分析:将 Azure 云环境与本地 Active Directory 联动分析,识别混合环境中的权限风险。

常用命令

  • 收集 Azure AD 数据:

    azurehound -c AzureAD -o data.json
    
    • -c AzureAD:指定收集 Azure AD 数据。
    • -o data.json:将结果保存为 JSON 文件。
  • 收集 Azure RM 数据:

    azurehound -c AzureRM -o data.json
    
    • -c AzureRM:指定收集 Azure 资源管理器数据。

2.bloodhound

bloodhound 是一款基于图论的域渗透分析利器,通过可视化技术揭示 Active Directory 中隐藏的权限关系与攻击路径。

核心作用

  • 可视化攻击路径:将复杂的域关系转化为直观的图形界面。
  • 自动化分析:自动计算从当前位置到域管理员的最短路径。
  • 全面覆盖:分析用户、组、计算机、权限、信任关系等多个维度。

常用命令

  • 启动 BloodHound:

    bloodhound
    
  • 导入数据:

    • 通过界面导入由 SharpHound 或 BloodHound-Python 收集的 JSON 数据。

3.bloodhound-python

bloodhound-python 是一个基于 Python 的 BloodHound 数据收集器,适用于 Linux 环境。

核心作用

  • 跨平台收集:在 Linux 系统上收集 Active Directory 数据。
  • 轻量级:相比 SharpHound,更轻便且易于部署。

常用命令

  • 收集域数据:

    bloodhound-python -u <用户名> -p <密码> -d <域名> -ns <DNS服务器>
    
    • -u:指定用户名。
    • -p:指定密码。
    • -d:指定域名。
    • -ns:指定 DNS 服务器。

4.sharphound

sharphound 是一个基于 C# 的 BloodHound 数据收集器,性能优异,隐蔽性强。

核心作用

  • 高效收集:快速收集域内各种对象的详细信息。
  • 隐蔽性:在域内活动时不易被检测。

常用命令

  • 收集域数据:

    Invoke-BloodHound -CollectionMethod All
    
    • Invoke-BloodHound:执行 BloodHound 收集命令。
    • -CollectionMethod All:收集所有可用数据。

(三)Databases(数据库)

image-20260129120431573

图中展示的是 Kali Linux 系统中Databases(数据库)分类下的三个核心工具:impacket-mssqlclientmysqlsqlitebrowser。这些工具在渗透测试的数据库审计、权限获取与数据管理阶段发挥关键作用,覆盖从命令行交互到图形化管理的完整需求。

1.impacket-mssqlclient

impacket-mssqlclient 是 Impacket 工具包中的一个强大命令行工具,用于与 Microsoft SQL Server 进行交互。它支持执行 SQL 查询、上传/下载文件,甚至获取交互式命令行 shell,是渗透测试中针对 SQL Server 漏洞利用与权限提升的重要武器。

核心作用

  • 命令行交互:无需图形界面即可连接远程 SQL Server,执行任意 SQL 语句。
  • 文件操作:支持在目标服务器上上传或下载文件,便于数据窃取或后门植入。
  • 权限提升:常用于利用 xp_cmdshell 等存储过程执行系统命令,实现从数据库权限到系统权限的跨越。

常用命令

  • 连接 SQL Server 并执行查询:

    impacket-mssqlclient username:password@target_ip -sqlquery "SELECT * FROM sysobjects"
    
  • 获取交互式 shell:

    impacket-mssqlclient username:password@target_ip
    
  • 启用 xp_cmdshell 并执行系统命令:

    EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
    EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
    EXEC xp_cmdshell 'whoami';
    

2.mysql

mysql 是 Kali Linux 中预装的 MySQL 命令行客户端,用于连接和管理 MySQL 或 MariaDB 数据库。它是数据库管理员和渗透测试人员进行手动查询、数据操作和权限验证的基础工具。

核心作用

  • 数据库连接:支持通过命令行快速连接本地或远程 MySQL 服务。
  • SQL 操作:执行增删改查(CRUD)操作,管理数据库、表、用户权限等。
  • 脚本执行:支持从文件中读取并执行 SQL 脚本,便于自动化任务。

常用命令

  • 连接数据库:

    mysql -u username -p -h target_ip
    
  • 查看所有数据库:

    SHOW DATABASES;
    
  • 切换数据库并查询表:

    USE database_name;
    SELECT * FROM table_name;
    

3.sqlitebrowser

sqlitebrowser(原名 DB Browser for SQLite)是一款开源、跨平台的图形化工具,专用于管理 SQLite 数据库文件。它提供直观的界面,让用户无需编写代码即可完成数据库的创建、查询、修改和备份,适合快速分析取证或轻量级开发。

核心作用

  • 可视化管理:以图形界面浏览数据库结构(表、索引、触发器),直接编辑数据。
  • SQL 编辑器:内置语法高亮的 SQL 编辑器,实时显示查询结果。
  • 数据导入导出:支持从 CSV、Excel 等格式导入数据,也可导出为 SQL 或 CSV 文件。
  • 跨平台兼容:支持 Windows、Linux、macOS,无需安装服务器即可运行。

常用操作

  • 打开现有 SQLite 数据库文件:直接拖拽 .db.sqlite 文件到界面。
  • 创建新表:通过向导设置字段名、类型、主键等。
  • 执行自定义 SQL:在“执行 SQL”标签页输入并运行语句。

(四)Network Security Appliances(网络安全设备)

image-20260129120559220

图中展示的是 Kali Linux 系统中Network Security Appliances(网络安全设备)分类下的两个核心工具:tcpreplaywafw00f。这两个工具分别聚焦于网络流量重放与 Web 应用防火墙探测,是网络安全测试与防御评估的重要组成部分。

1.tcpreplay

tcpreplay 是一个功能强大的网络数据包重放工具,主要用于将捕获的网络流量(如 pcap 文件)重新发送到网络中,以模拟真实流量场景。它常用于网络设备性能测试、安全策略验证、入侵检测系统(IDS)规则测试等。

核心作用

  • 流量重放:将预先捕获的网络数据包按原样或修改后重新发送,复现特定网络行为。
  • 性能测试:通过高并发、高速度重放流量,测试网络设备在极限负载下的表现。
  • 安全验证:用于验证防火墙、IDS/IPS 等安全设备是否能正确识别和拦截恶意流量。

常用命令

  • 基本重放:

    tcpreplay -i eth0 capture.pcap
    
    • -i eth0:指定发送数据包的网络接口。
    • capture.pcap:要重放的 pcap 格式数据包文件。
  • 限制重放速度:

    tcpreplay -i eth0 --mbps=10 capture.pcap
    
    • --mbps=10:将重放速度限制为 10 Mbps,避免网络拥塞。
  • 循环重放:

    tcpreplay -i eth0 -l 5 capture.pcap
    
    • -l 5:循环重放数据包 5 次。
  • 修改数据包 MAC 地址:

    tcprewrite --enet-smac=00:11:22:33:44:55 --enet-dmac=55:44:33:22:11:00 -i capture.pcap -o modified.pcap
    
    • --enet-smac--enet-dmac:分别修改源和目标 MAC 地址。
    • -i:输入文件。
    • -o:输出修改后的文件。

2.wafw00f

wafw00f 是一个专门用于探测网站是否使用 Web 应用防火墙(WAF)的工具,它能识别出目标网站背后部署的 WAF 厂商和类型,如 CloudFlare、ModSecurity、AWS WAF 等。

核心作用

  • WAF 识别:通过发送正常和恶意的 HTTP 请求,分析响应特征,判断目标是否部署了 WAF。
  • 安全评估:帮助渗透测试人员了解目标的防御体系,制定绕过或应对策略。
  • 指纹分析:支持识别数十种主流 WAF 产品,提供详细的指纹信息。

常用命令

  • 基本探测:

    wafw00f http://target.com
    
    • 直接探测目标 URL,输出是否检测到 WAF 及其类型。
  • 显示所有支持的 WAF 列表:

    wafw00f -l
    
    • 列出工具当前支持识别的所有 WAF 产品。
  • 使用代理探测:

    wafw00f -p http://proxy:8080 http://target.com
    
    • -p:指定 HTTP 或 SOCKS 代理,用于隐蔽探测或通过代理链路访问目标。
  • 输出结果到文件:

    wafw00f -o result.json http://target.com
    
    • -o:将探测结果保存为 JSON 格式文件,便于后续分析。
  • 批量探测多个目标:

    wafw00f -i targets.txt
    
    • -i:从文件中读取目标 URL 列表,逐个进行探测。

(五)Network Service Discovery(网络服务发现)

image-20260129120906883

图中展示的是 Kali Linux 系统中Network Service Discovery(网络服务发现)分类下的六个核心工具:amassike-scanmasscannmapunicornscanzenmap。这些工具在渗透测试的信息收集阶段发挥关键作用,覆盖从域名枚举、VPN 网关识别到高速端口扫描和图形化网络探测的完整需求。

1.amass

amass 是 OWASP 旗下的旗舰项目,专为攻击面映射和资产发现设计。它整合了80多种被动与主动信息收集技术,能够通过证书透明度日志、搜索引擎、WHOIS 等多数据源深度挖掘目标域名的子域名和关联资产,是红队行动和安全评估的首选工具。

核心作用

  • 子域名枚举:支持字典攻击、穷举攻击和搜索引擎枚举,发现隐藏或未公开的子域名。
  • 资产发现:通过多数据源整合,构建目标网络的完整资产图谱。
  • 绕过检测:支持自定义配置文件和智能算法,降低被目标防御系统检测的风险。

常用命令

  • 基础子域名枚举:

    amass enum -d example.com
    
  • 使用特定数据源:

    amass enum -d example.com -src -passive
    
  • 输出结果到文件:

    amass enum -d example.com -o results.txt
    

2.ike-scan

ike-scan 是一款专门用于发现和指纹识别 IKE(Internet Key Exchange)主机的工具,主要用于识别 IPsec VPN 网关。它通过发送 IKE 请求并分析响应,识别 VPN 网关的类型、支持的加密算法等信息,是 VPN 安全评估的核心工具。

核心作用

  • VPN 网关发现:快速识别网络中的 IPsec VPN 服务器。
  • 指纹识别:分析 VPN 网关的配置和版本信息。
  • 批量扫描:支持对 IP 段或主机列表进行大规模扫描。

常用命令

  • 扫描单个主机:

    ike-scan 192.168.1.1
    
  • 扫描 IP 段:

    ike-scan 192.168.1.0/24
    
  • 输出详细信息:

    ike-scan -v 192.168.1.1
    

3.masscan

masscan 被称为“端口扫描界的法拉利”,以异步无状态扫描技术实现千万级主机/秒的扫描速率。它采用半开放扫描方式和自定义协议栈,能够在极短时间内完成大规模网络的端口探测,是网络资产测绘和脆弱服务定位的首选工具。

核心作用

  • 高速端口扫描:支持自定义 IP 和端口范围,发包速度快(Linux 下可达每秒 160 万包)。
  • 大规模扫描:适用于全网段或跨网段的批量端口探测。
  • 灵活配置:支持随机 IP 选择和速率控制,避免对目标主机造成压力。

常用命令

  • 扫描指定端口:

    masscan 192.168.1.1 192.168.1.1 --ports 80,443
    
  • 设置扫描速率:

    masscan 192.168.1.0/24 --ports 1-1000 --rate 10000
    
  • 输出结果到文件:

    masscan 192.168.1.0/24 --ports 80,443 -oG results.txt
    

4.nmap

nmap 是最著名的网络扫描工具,功能全面,支持主机发现、端口扫描、版本检测、OS 识别等。它能够提供目标主机的详细信息,包括开放端口、运行服务、操作系统类型等,是渗透测试信息收集阶段的标准工具。

核心作用

  • 主机发现:识别网络中的活动主机。
  • 端口扫描:支持多种扫描方式(如 SYN、TCP、UDP),探测目标主机的开放端口。
  • 服务与版本检测:识别开放端口上运行的服务及其版本信息。
  • 脚本扩展:支持 NSE(Nmap Scripting Engine)脚本,实现漏洞扫描、枚举等高级功能。

常用命令

  • 基础扫描:

    nmap 192.168.1.1
    
  • 扫描指定端口:

    nmap -p 80,443 192.168.1.1
    
  • 操作系统识别:

    nmap -O 192.168.1.1
    
  • 使用脚本扫描:

    nmap --script vuln 192.168.1.1
    

5.unicornscan

unicornscan 是一款异步扫描工具,支持主动和被动的网络发现与端口扫描。它采用异步传输机制和自定义协议栈,能够在高速扫描的同时保持低资源消耗,适用于大规模网络环境。

核心作用

  • 异步扫描:通过多线程并发发送数据包,提高扫描效率。
  • 灵活输出:支持多种输出格式,便于后续分析。
  • 被动扫描:能够在不发送探测包的情况下,通过监听网络流量发现主机和服务。

常用命令

  • 基础扫描:

    unicornscan 192.168.1.1
    
  • 扫描指定端口:

    unicornscan -p 80,443 192.168.1.1
    
  • 使用特定扫描模式:

    unicornscan -m s 192.168.1.1
    

6.zenmap

zenmap 是 nmap 的图形化前端,提供直观的用户界面,便于新手和高级用户使用。它支持保存扫描配置、可视化扫描结果,并能够以图形方式展示网络拓扑,是 nmap 的重要补充。

核心作用

  • 图形化操作:提供直观的界面,简化 nmap 的命令行操作。
  • 结果可视化:以图形方式展示扫描结果,便于分析和报告。
  • 配置保存:支持保存和加载扫描配置,提高工作效率。

常用命令

  • 启动 zenmap:

    zenmap
    
  • 指定目标扫描:

    zenmap 192.168.1.1
    
  • 加载保存的配置:

    zenmap -l my_profile.xml
    

(六)Network Share Discovery(网络共享发现)

image-20260129123432158

图中展示的是 Kali Linux 系统中Network Share Discovery(网络共享发现)分类下的五个核心工具:enum4linuxnbtscannetexecsmbclientsmbmap。这些工具专注于在局域网或域环境中探测、枚举和交互 SMB/CIFS 等网络共享服务,是渗透测试中信息收集与权限获取阶段的关键装备。

1.enum4linux

enum4linux 是一款用 Perl 编写的工具,旨在枚举 Windows 和 Samba 主机上的用户、组、共享、密码策略等信息。它整合了 Samba 工具集(如 smbclient、rpcclient)的功能,支持 RID 循环、用户列表获取、共享枚举等高级技术,是域渗透前期信息收集的必备利器。

核心作用

  • 用户与组枚举:即使在匿名访问受限的情况下,也能通过 RID 循环技术识别有效用户和组。
  • 共享资源探测:快速列出目标主机上所有可访问的共享文件夹。
  • 密码策略分析:配合 polenum 工具获取目标域的密码复杂度、有效期等安全策略。

常用命令

  • 全量枚举:

    enum4linux -a target_ip
    
  • 仅枚举用户:

    enum4linux -U target_ip
    
  • 指定用户名和密码进行枚举:

    enum4linux -u username -p password target_ip
    

2.nbtscan

nbtscan 是一个轻量级命令行工具,通过 NetBIOS 协议扫描局域网内的设备,获取其 IP 地址、MAC 地址、主机名和用户名等信息。它常用于快速发现内网存活主机,尤其适用于没有活跃 SMB 服务但开启 NetBIOS 的 Windows 机器。

核心作用

  • 内网主机发现:快速识别局域网中所有开启 NetBIOS 的设备。
  • 身份标识获取:获取主机名和用户名,辅助判断主机角色和所属域。
  • 木马与异常设备检测:结合 MAC 地址和主机名,辅助定位感染病毒或异常的终端。

常用命令

  • 扫描整个网段:

    nbtscan 192.168.1.0/24
    
  • 扫描单个 IP:

    nbtscan 192.168.1.100
    

3.netexec

netexec(原 CrackMapExec)是一款功能强大的自动化网络执行工具,支持 SMB、LDAP、MSSQL、WinRM 等多种协议,能够批量执行命令、传递哈希、枚举权限和漏洞。它是红队在域环境中进行横向移动和权限维持的核心工具。

核心作用

  • 批量命令执行:在多台目标主机上同时执行系统命令或脚本。
  • 哈希传递攻击:利用 NTLM 哈希进行身份验证,无需明文密码即可控制目标。
  • 漏洞自动化测试:集成多个模块,可自动检测和利用常见 SMB 漏洞。

常用命令

  • SMB 模式执行命令:

    netexec smb target_ip -u username -p password -x "whoami"
    
  • 哈希传递:

    netexec smb target_ip -u username -H LMHASH:NTHASH
    
  • 模块列表查看:

    netexec --list-modules
    

4.smbclient

smbclient 是 Samba 工具包中的标准客户端,用于与 SMB/CIFS 共享资源进行交互,功能类似于 FTP 客户端。它可以列出共享、上传下载文件、执行远程命令,是渗透测试中与 Windows 共享目录直接交互的首选工具。

核心作用

  • 共享访问:以交互方式连接到目标共享文件夹,浏览和操作文件。
  • 匿名访问测试:测试目标是否允许匿名访问共享资源。
  • 文件传输:上传 Web shell、工具或敏感数据下载。

常用命令

  • 列出共享:

    smbclient -L //target_ip -U username
    
  • 连接共享:

    smbclient //target_ip/sharename -U username
    
  • 匿名连接:

    smbclient -L //target_ip -U ""
    

5.smbmap

smbmap 是一个专注于 SMB 共享枚举和权限检查的工具,支持递归目录列表、文件读写测试、命令执行等功能。它输出清晰、支持多线程,非常适合在大型网络中快速识别可写共享和敏感文件。

核心作用

  • 共享权限分析:快速识别哪些共享允许读、写、执行操作。
  • 敏感文件发现:递归列出目录内容,查找配置文件、数据库、日志等敏感数据。
  • 远程命令执行:在支持的系统上通过 SMB 协议执行系统命令。

常用命令

  • 枚举所有共享:

    smbmap -H target_ip -u username -p password
    
  • 递归列出目录:

    smbmap -H target_ip -u username -p password -r "C$\temp"
    
  • 执行远程命令:

    smbmap -H target_ip -u username -p password -x "ipconfig"
    

(七)Network Sniffing(网络嗅探)

image-20260129123531513

图中展示的是 Kali Linux 系统中Network Sniffing(网络嗅探)分类下的六个核心工具:arpspoofdnschefdsniffnetsniff-ngscapytcpdumpwireshark。这些工具覆盖从 ARP 欺骗、DNS 代理、流量捕获到协议分析的完整网络嗅探与中间人攻击链条。

1.arpspoof

arpspoof 是 dsniff 工具集中的核心组件,专用于执行 ARP 欺骗攻击。它通过发送伪造的 ARP 响应包,篡改目标主机的 ARP 缓存,使其将流量转发至攻击者机器,从而实现中间人攻击。

核心作用

  • ARP 欺骗:将目标主机的网关 MAC 地址替换为攻击者 MAC,截获其网络流量。
  • 流量转发:配合系统 IP 转发功能,可在不中断目标网络连接的前提下窃听或篡改数据。
  • 配合其他工具:常与 dsniff、tcpdump 等工具联动,提取明文密码、会话令牌等敏感信息。

常用命令

  • 开启 ARP 欺骗:

    arpspoof -i eth0 -t 192.168.1.2 192.168.1.1
    
    • -i eth0:指定攻击网卡。
    • -t 192.168.1.2:指定目标主机。
    • 192.168.1.1:伪装成网关 IP。

2.dnschef

dnschef 是一个高度可配置的 DNS 代理工具,用于渗透测试中的 DNS 欺骗与流量分析。它可伪造 DNS 响应,将特定域名解析至攻击者控制的 IP,常用于钓鱼、恶意软件分析或流量重定向。

核心作用

  • DNS 欺骗:将目标域名(如 google.com)解析至指定 IP,实现流量劫持。
  • 多记录支持:支持 A、AAAA、CNAME、NS 等多种 DNS 记录类型。
  • 日志记录:可记录所有 DNS 查询与响应,辅助分析目标行为。

常用命令

  • 基础 DNS 欺骗:

    dnschef --fakeip 192.168.1.100 -q --interface 0.0.0.0
    
    • --fakeip 192.168.1.100:将所有查询解析至该 IP。
    • -q:安静模式,仅输出关键信息。
    • --interface 0.0.0.0:监听所有网络接口。

3.dsniff

dsniff 是一个集成化的网络嗅探工具包,包含多个子工具,如 dnsspoof、mailsnarf、filesnarf 等,支持对 HTTP、FTP、SMTP 等多种协议的明文流量进行截获与分析。

核心作用

  • 多协议嗅探:自动识别并提取 HTTP、FTP、POP3 等协议中的用户名、密码、文件内容。
  • 中间人攻击:依赖 ARP 欺骗实现交换网络中的流量截获。
  • 模块化设计:各子工具可独立运行,灵活应对不同场景。

常用命令

  • 启动 dsniff 嗅探:

    dsniff -i eth0
    
    • -i eth0:指定监听网卡。

4.netsniff-ng

netsniff-ng 是一个高性能的网络流量分析与生成工具,支持数据包捕获、重放、统计分析,适用于网络性能测试与安全审计。

核心作用

  • 流量捕获与重放:支持将捕获的流量保存为 pcap 格式并重新发送。
  • 统计分析:提供带宽、丢包、延迟等网络性能指标。
  • 零拷贝技术:采用高效的数据包处理机制,支持高吞吐量环境。

常用命令

  • 捕获流量:

    netsniff-ng -i eth0 -o capture.pcap
    

5.scapy

scapy 是一个强大的 Python 交互式数据包操作工具,支持构造、发送、捕获和分析自定义协议数据包。

核心作用

  • 自定义协议构造:支持从底层构建任意网络协议数据包。
  • 交互式操作:提供 Python REPL 环境,可实时编写脚本进行网络探测。
  • 模糊测试:常用于协议模糊测试与漏洞挖掘。

常用命令

  • 发送 ICMP 包:

    scapy
    >>> send(IP(dst="192.168.1.1")/ICMP())
    

6.tcpdump

tcpdump 是一个经典的命令行网络数据包分析工具,支持捕获并显示网络接口上的数据包内容。

核心作用

  • 数据包捕获:支持按协议、端口、主机等条件过滤捕获流量。
  • 命令行操作:轻量级,适合服务器环境或脚本自动化。
  • 与 Wireshark 兼容:捕获的 pcap 文件可导入 Wireshark 进行图形化分析。

常用命令

  • 捕获指定端口流量:

    tcpdump -i eth0 port 80
    

7.wireshark

wireshark 是业界标准的图形化网络协议分析工具,提供强大的数据包解析、过滤、统计功能,支持数百种协议。

核心作用

  • 深度协议解析:可解析应用层、传输层、网络层等各层协议字段。
  • 图形化界面:提供直观的树状结构展示数据包内容。
  • 统计与分析:内置 IO 图、会话统计、端点分析等高级功能。

常用命令

  • 启动 wireshark:

    wireshark
    

(八)Remote System Discovery(远程系统发现)

image-20260129124246700

图中展示的是远程系统发现相关的网络工具列表,这些工具主要用于网络探测、主机存活检测、协议分析和安全测试,它们在网络安全、系统管理和渗透测试中被广泛应用。

1.arping

arping 是一个基于 ARP 协议的网络探测工具,用于在局域网内探测主机的存活状态并获取其 MAC 地址。它工作在数据链路层(第2层),不受防火墙对 ICMP 报文的拦截影响,因此在某些场景下比传统 ping 更可靠。
核心作用

  • 探测指定 IP 地址是否在本地网络中活跃。
  • 获取目标主机的 MAC 地址,用于 ARP 缓存验证或冲突检测。
  • 适用于网络故障排查、IP 地址冲突检测和局域网扫描。
    常用命令
arping -c 4 192.168.1.1

向目标 IP 发送 4 个 ARP 请求包,用于快速检测主机存活。

arping -I eth0 192.168.1.1

指定从 eth0 网卡发送 ARP 请求,适用于多网卡环境或指定网段扫描。

arping -b 192.168.1.1

使用广播模式发送 ARP 请求,强制目标主机响应,常用于绕过简单的防火墙拦截。

2.atk6-thcping6

atk6-thcping6 是 THC-IPv6 工具包中的一个组件,专门用于 IPv6 网络的探测与测试。它支持发送自定义的 ICMPv6、TCP SYN 或 UDP 包,可用于测试 IPv6 协议栈的响应行为和网络连通性。
核心作用

  • 在 IPv6 网络中模拟 ping 操作,检测主机存活状态。
  • 支持构造特殊 IPv6 扩展头或 ICMPv6 类型的探测包,用于协议模糊测试。
  • 可用于安全评估,发现 IPv6 网络中的潜在漏洞或配置错误。
    常用命令
atk6-thcping6 -T 128 -n 4 fe80::1

发送 4 个 ICMPv6 Echo 请求(类型 128)到目标 IPv6 地址,测试基础连通性。

atk6-thcping6 -S 80 fe80::1

使用 TCP SYN 包探测目标的 80 端口,用于判断端口是否开放。

atk6-thcping6 -U 53 fe80::1

使用 UDP 包探测目标的 53 端口(DNS 服务),测试服务响应。

3.fierce

fierce 是一个专注于 DNS 枚举和网络映射的 Perl 脚本,常用于安全评估前期的信息收集阶段。不同于暴力爆破型扫描器,它更侧重于通过 DNS 记录(如 NS、MX、TXT 记录)智能地发现内部主机和子域,非常适合绘制企业内网拓扑。
核心作用

  • 枚举域名的 DNS 记录,发现子域名。
  • 通过 DNS 区域传送尝试获取内部网络 IP 范围。
  • 辅助渗透测试人员定位非连续网段的服务器。
    常用命令
fierce -dns example.com

对域名 example.com 进行基本的 DNS 枚举,寻找子域名和关联 IP。

fierce -dns example.com -wordlist custom_list.txt

使用自定义的字典文件进行暴力枚举,提高发现隐藏主机的概率。

fierce -dns example.com -range 192.168.1.0-255

结合已知的 IP 范围进行反向查找,发现未公开的内部主机。

4.fping

fping 是一个企业级的 ping 工具,与传统的 ping 不同,它允许用户并行地 ping 多个主机。fping 的设计目标是快速、高效地进行大规模网络主机存活扫描,并且支持复杂的输入输出格式,常被用作其他网络扫描工具的后端引擎。
核心作用

  • 大规模主机存活扫描:能够快速并发地探测成百上千个 IP 地址的可达性。
  • 灵活的输出控制:支持将存活或不存活的主机分别输出,便于脚本处理。
  • 持续监控:可以配置为持续扫描模式,用于监控网络的稳定性。
    常用命令
fping 192.168.1.1 192.168.1.2 192.168.1.3

同时探测列出的多个特定 IP 地址的存活状态。

fping -g 192.168.1.0/24

生成并探测指定网段(1-254)内的所有 IP 地址,是进行局域网普查的常用命令。

fping -a -d 192.168.1.1

只显示存活的主机(-a)并尝试反向解析域名(-d),用于清理扫描结果。

5.hping3

hping3 是一个强大的命令行网络工具,它本质上是一个面向 TCP/IP 协议的数据包生成和分析工具。它不仅支持 ICMP ping,更强大的是支持发送自定义的 TCP、UDP、RAW IP 包。它常用于防火墙测试、端口扫描、网络性能测试以及traceroute。
核心作用

  • 高级防火墙/IDS 测试:通过发送带有特殊标志位(如 SYN, FIN, XMAS)的包,测试安全设备的检测规则。
  • 手动 MTU 路径发现:通过发送特定大小的数据包来探测网络路径的最大传输单元。
  • 模拟 SYN Flood 攻击:用于测试服务器在遭受拒绝服务攻击时的稳定性(需谨慎使用)。
    常用命令
hping3 -S -p 80 192.168.1.1

向目标主机的 80 端口发送 TCP SYN 包,常用于隐蔽的端口扫描(不建立完整连接)。

hping3 -c 5 -i u10000 192.168.1.1

发送 5 个数据包,每个包间隔 10 毫秒,用于快速测试网络延迟。

hping3 --flood -S -p 80 192.168.1.1

开启洪泛模式(Flood),快速发送大量 SYN 包,用于压力测试(在合法授权的环境下使用)。

(九)SMTP(简单邮件传输协议)

image-20260129125036062

图中展示的是针对SMTP(简单邮件传输协议)服务进行枚举和漏洞扫描的相关工具,帮助安全人员或攻击者获取邮件服务器的用户账户信息、版本信息及潜在的配置漏洞,从而为后续的渗透测试或安全评估提供基础数据。

1.smtp-user-enum

smtp-user-enum 是一个高效的SMTP用户枚举工具,它通过发送特定的SMTP命令(如 VRFY、EXPN 或 RCPT TO)来探测邮件服务器上是否存在特定的用户名或邮箱地址。该工具基于脚本编写,通常依赖于Perl环境,能够快速地结合字典文件对大量可能的用户名进行批量验证,是信息收集阶段识别有效邮件账户的利器。

核心作用

  • 用户验证:利用SMTP协议的VRFY命令确认服务器上是否存在某个特定的用户名,从而获取有效的邮件地址。
  • 字典攻击:支持配合用户名字典进行批量枚举,快速发现服务器上的合法账户。
  • 多模式支持:除了VRFY模式,还支持EXPN(扩展 mailing list)和RCPT TO(邮件接收方)模式,适应不同配置的SMTP服务器。
  • 效率高:通过并行扫描和优化的网络请求,能够快速处理大量的枚举请求。

常用命令

smtp-user-enum -M VRFY -U /path/to/userlist.txt -t 192.168.1.100
  • 含义:使用 smtp-user-enum 工具,指定枚举模式为 VRFY,利用用户名字典文件 /path/to/userlist.txt,对目标服务器 192.168.1.100 进行SMTP用户枚举。
  • 参数解析:
    • -M VRFY:指定使用SMTP的VRFY命令进行验证。
    • -U /path/to/userlist.txt:指定包含可能用户名的字典文件路径。
    • -t 192.168.1.100:指定目标SMTP服务器的IP地址。

2.swaks

swaks(SMTP Send And Receive Kit)是一个功能强大且灵活的SMTP测试工具包,被称为“SMTP的Netcat”。它支持从命令行构造和发送任意的SMTP请求,并能详细显示服务器的响应。它不仅用于发送测试邮件,还常用于深入测试SMTP服务器的各种功能、认证机制、TLS加密支持以及潜在的漏洞(如邮件头注入、开放中继测试等)。

核心作用

  • 协议调试:详细展示SMTP会话的全过程,包括握手、认证、邮件发送等每个步骤的请求和响应数据。
  • 自定义邮件:允许用户完全自定义邮件头和邮件正文,用于测试邮件系统的过滤规则、反垃圾邮件机制或寻找注入点。
  • 认证测试:支持测试各种SMTP认证机制(如PLAIN, LOGIN, CRAM-MD5等),检查认证流程是否存在漏洞。
  • TLS/SSL测试:能够测试服务器对STARTTLS的支持情况,以及SSL/TLS证书的有效性。
  • 附件与多媒体:支持构造包含附件、HTML内容等复杂的MIME格式邮件。

常用命令

swaks --to test@target.com --from attacker@fake.com --server 192.168.1.100:25
  • 含义:使用 swaks 向目标邮箱 test@target.com 发送一封测试邮件,发件人伪造为 attacker@fake.com,通过目标SMTP服务器 192.168.1.100 的25端口进行发送。
  • 参数解析:
    • --to test@target.com:指定邮件接收方地址。
    • --from attacker@fake.com:指定邮件发送方地址(可以伪造)。
    • --server 192.168.1.100:25:指定目标SMTP服务器的地址和端口。
swaks --to user@target.com --from admin@target.com --server 192.168.1.100 --auth --auth-user admin --auth-pass password123
  • 含义:在发送邮件时启用SMTP认证,尝试使用用户名 admin 和密码 password123 登录目标服务器发送邮件,用于测试认证功能或凭证猜解。
  • 参数解析:
    • --auth:启用SMTP认证。
    • --auth-user admin:指定认证用户名。
    • --auth-pass password123:指定认证密码。

(十)SNMP(简单网络管理协议)

image-20260129125053896

图中展示的是SNMP(简单网络管理协议)工具集,主要用于网络设备的信息枚举和安全评估。图中包含两个核心工具:onesixtyone 和 snmp-check,它们在渗透测试和安全审计中常用于发现SNMP服务的配置漏洞和敏感信息。

1.onesixtyone

onesixtyone 是一个高效的SNMP扫描工具,它通过发送SNMP请求来探测目标主机是否开放了SNMP服务,并能识别出使用的团体字符串。该工具支持批量扫描,可以快速检测整个网段内的SNMP设备,尤其适用于识别使用默认或弱口令团体字符串的设备。

核心作用

  • SNMP服务发现:能够快速识别网络中开启SNMP服务的设备。
  • 团体字符串爆破:支持使用字典文件对目标进行团体字符串的暴力破解,常用于发现默认配置的设备。
  • 批量扫描:可对整个IP网段进行扫描,提高信息收集效率。
  • 轻量级:工具体积小,执行速度快,适合在资源有限的环境中使用。

常用命令

onesixtyone -c /usr/share/doc/onesixtyone/dict.txt 192.168.1.100 -o result.log
  • 含义:使用 onesixtyone 工具,指定字典文件 /usr/share/doc/onesixtyone/dict.txt,对目标IP 192.168.1.100 进行SNMP团体字符串扫描,并将结果输出到 result.log 文件。
  • 参数解析:
    • -c:指定用于爆破的团体字符串字典文件。
    • 192.168.1.100:目标主机的IP地址。
    • -o:指定输出结果的文件名。
    • -w:设置并发扫描的线程数,提高扫描速度。

2.snmp-check

工具总体介绍
snmp-check 是一个功能全面的SNMP枚举工具,它能够连接到支持SNMP协议的设备,并以可读性高的格式输出设备的详细信息。该工具支持多种SNMP版本,能够收集包括设备型号、操作系统版本、网络配置、硬件状态等在内的大量信息,是安全评估和网络管理的得力助手。

核心作用

  • 信息枚举:能够获取设备的详细系统信息,如主机名、描述、联系人、位置等。
  • 服务识别:识别设备上运行的服务和开放的端口,帮助评估网络安全性。
  • 写入权限检测:检测SNMP服务是否配置了可写权限,这可能被用于恶意修改设备配置。
  • 多平台支持:适用于各种支持SNMP的设备,包括Windows、Linux、网络设备和打印机等。

常用命令

snmp-check -t 192.168.1.100 -c public
  • 含义:使用 snmp-check 工具,连接到目标IP 192.168.1.100,使用团体字符串 public 进行SNMP信息枚举。
  • 参数解析:
    • -t:指定目标主机的IP地址。
    • -c:指定用于连接的SNMP团体字符串。
    • -p:指定SNMP端口,默认为161。
    • -v:指定SNMP版本,如1、2c或3。

(十一)SSL/TLS

image-20260129191507610

这是SSL/TLS工具集,主要用于网络安全通信的测试与分析。图中包含两个核心工具:sslscansslyze,它们在渗透测试和安全评估中常用于检测SSL/TLS协议的安全性,识别弱加密算法、过期证书及配置漏洞。

1.sslscan

sslscan 是一个快速的SSL/TLS扫描工具,它能够检测目标服务器支持的SSL/TLS版本、加密套件、证书信息以及是否存在已知的漏洞,如心脏出血(Heartbleed)等。该工具输出简洁明了,适合在命令行环境下快速执行,是安全人员进行初步安全评估的常用工具。

核心作用

  • 协议版本检测:识别目标服务器支持的SSL/TLS版本,如SSLv2、SSLv3、TLSv1.0、TLSv1.1、TLSv1.2等。
  • 加密套件枚举:列出服务器支持的加密算法和密钥交换方式,帮助识别弱加密配置。
  • 证书信息获取:提取服务器证书的详细信息,包括颁发者、有效期、公钥算法等。
  • 漏洞检测:支持检测常见的SSL/TLS漏洞,如心脏出血、CCS注入等。

常用命令

sslscan --no-failed --enable-heartbleed --xml=sslscan_report.xml example.com:443
  • 含义:使用 sslscan 工具,对目标域名 example.com 的443端口进行扫描,不显示失败的测试结果,启用心脏出血漏洞检测,并将结果以XML格式输出到 sslscan_report.xml 文件。
  • 参数解析:
    • --no-failed:不显示未通过的测试项,简化输出。
    • --enable-heartbleed:启用心脏出血漏洞检测。
    • --xml=sslscan_report.xml:将扫描结果保存为XML格式的报告文件。
    • example.com:443:指定目标主机和端口。

2.sslyze

sslyze 是一个功能强大的SSL/TLS分析工具,它能够对目标服务器进行全面的安全评估,包括协议支持、加密套件、证书有效性、OCSP装订、HSTS等。该工具支持多线程扫描,能够高效地处理大量目标,并提供详细的JSON或XML格式报告,适合自动化安全测试流程。

核心作用

  • 全面协议测试:检测服务器对SSLv2、SSLv3、TLSv1.0至TLSv1.3的支持情况。
  • 加密套件分析:评估服务器配置的加密套件安全性,识别弱加密算法。
  • 证书链验证:验证服务器证书链的完整性和有效性,检查是否由受信任的CA颁发。
  • 高级功能检测:支持检测OCSP装订、HSTS、SNI、ALPN等现代TLS特性。
  • 报告生成:支持生成JSON、XML等格式的详细报告,便于后续分析和集成。

常用命令

sslyze --regular --json_out=sslyze_report.json example.com:443
  • 含义:使用 sslyze 工具,对目标域名 example.com 的443端口执行常规安全扫描,并将结果以JSON格式输出到 sslyze_report.json 文件。
  • 参数解析:
    • --regular:执行常规扫描,包含协议支持、加密套件、证书等基本测试。
    • --json_out=sslyze_report.json:将扫描结果保存为JSON格式的报告文件。
    • example.com:443:指定目标主机和端口。

(十二)System Network Configuration Discovery(系统网络配置发现)

image-20260129191638570

这是“系统网络配置发现”工具目录,主要用于网络环境中的主机发现与子网掩码计算。图中包含两个核心工具:netdiscovernetmask,它们在渗透测试和网络管理中常用于快速识别局域网内活跃设备及进行IP地址段的掩码转换与计算。

1.netdiscover

netdiscover 是一款基于ARP协议的网络地址发现工具,专为无线网络和交换网络设计。它通过主动发送ARP请求或被动监听ARP回复,快速定位网络中的在线设备,是安全人员和网络管理员进行主机发现和信息收集的常用工具。

核心作用

  • 主机发现:通过ARP协议探测局域网内活跃的IP地址和MAC地址。
  • 被动监听:在不发送任何数据包的情况下,仅通过嗅探网络流量来发现设备。
  • 厂商识别:根据MAC地址解析设备厂商信息。
  • 快速扫描:支持指定网段或自动扫描常见局域网地址,效率高。

常用命令

netdiscover -i eth0 -r 192.168.1.0/24
  • 含义:使用 netdiscover 工具,指定网络接口为 eth0,对 192.168.1.0/24 网段进行主动扫描。
  • 参数解析:
    • -i eth0:指定要使用的网络接口。
    • -r 192.168.1.0/24:指定要扫描的IP范围。

2.netmask

netmask 是一个网络掩码生成和转换程序,能够将IP地址和子网掩码在不同格式之间进行转换,如标准格式、CIDR格式、反掩码格式等。它在进行网络规划和渗透测试时,用于快速计算和验证IP地址段。

核心作用

  • 掩码转换:支持将IP地址和子网掩码在标准格式、CIDR格式、反掩码格式之间进行转换。
  • 地址计算:根据给定的IP地址和掩码,计算出网络地址、广播地址、可用主机范围等。
  • 子网划分:支持根据主机数量需求进行子网划分。
  • 批量处理:支持从文件中读取IP地址段进行批量计算。

常用命令

netmask -c 192.168.1.0/24
  • 含义:使用 netmask 工具,计算 192.168.1.0/24 的网络地址、广播地址、子网掩码等信息。
  • 参数解析:
    • -c:指定要计算的IP地址和子网掩码。

(十三)VoIP

image-20260129191822792

这是Kali Linux系统中的“VoIP”工具目录,其中包含VoIP Hopper工具,主要用于VLAN跳转与VoIP安全测试。

1.VoIP Hopper

VoIP Hopper 是一款基于C语言编写、采用GPLv3许可的安全测试工具,专为评估VoIP基础设施和VLAN网络安全性而设计。它通过模拟Cisco、Avaya、Alcatel和Nortel等品牌IP电话的行为,实现VLAN跳转,帮助安全人员发现网络配置中的潜在漏洞。

核心作用

  • VLAN跳转测试:模拟IP电话行为,突破默认VLAN限制,进入语音VLAN,测试网络隔离有效性。
  • 协议支持:支持CDP、LLDP-MED等VoIP相关协议的欺骗与嗅探,用于发现网络拓扑和配置弱点。
  • 渗透测试辅助:在授权渗透测试中,用于评估企业VoIP系统的安全防护能力,识别未授权访问风险。

常用命令

voiphopper -i eth0 -t 192.168.1.100 -v 100
  • 含义:使用 voiphopper 工具,指定网络接口为 eth0,目标主机为 192.168.1.100,并设置VLAN ID为 100 进行跳转测试。
  • 参数解析:
    • -i eth0:指定用于通信的网络接口。
    • -t 192.168.1.100:指定目标VoIP设备或交换机的IP地址。
    • -v 100:指定要跳转到的VLAN ID。
    • -m mac:可选参数,指定伪造的MAC地址,模拟特定IP电话。