渗透中值得关注的不常见的敏感扩展名综合指南,收藏夹吃灰专用
在进行渗透测试或数据安全评估时,除了常规的 .config、.xml、.sql、.bak 等文件,还存在许多不常见但可能包含极高价值敏感信息的文件。
以 .psc(Navicat 数据库备份压缩文件)为例,它直接暴露了数据库的结构和数据,是攻击者梦寐以求的目标。本指南旨在整合并分类更多类似的高价值且不常见的文件扩展名,为安全专业人士提供参考。
1. 数据库相关文件
这类文件直接或间接关系到数据库的连接、结构和数据,是最高优先级的目标之一。
扩展名 | 文件类型/来源 | 潜在的敏感信息 | 备注/风险 |
.psc / .psb | Navicat Backup File | 完整的数据库结构、数据、视图、存储过程等。 | 高风险。获取此文件相当于获取了数据库的完整快照。 |
.mdf / .ldf | Microsoft SQL Server Database File | 主数据文件和日志文件,包含了所有数据库信息。 | 极高风险。通常在服务器上,但有时会因错误配置而暴露在Web目录中。 |
.dmp | Oracle/MySQL Database Dump | 数据库的全量或增量备份,包含表结构和数据。 | 极高风险。这是标准的数据库转储文件,价值巨大。 |
.sql | SQL Dump File | 包含数据库结构和数据的SQL命令,通常为明文。 | 高风险。可直接用于恢复数据库或分析数据。 |
.sqlite / .db / .db3 | SQLite Database File | 完整的轻量级数据库,包含应用数据。 | 中到高风险。常见于移动应用、浏览器缓存或小型Web应用。 |
.frm / .myd / .myi | MySQL MyISAM Table Files | MySQL表的结构、数据和索引文件。 | 高风险。这些文件组合在一起可以恢复MySQL表。 |
.pgpass | PostgreSQL Password File | 用于无密码连接PostgreSQL数据库的密码文件。 | 高风险。通常位于用户主目录,泄露后可直接访问数据库。 |
.bcp | SQL Server Bulk Copy Program Data File | 用于批量导入/导出的数据文件,通常为纯文本或二进制格式。 | 高风险。包含大量的原始表数据。 |
.fbk | Firebird Database Backup | Firebird数据库的备份文件,包含完整的数据结构和数据。 | 高风险。可以通过gbak工具还原数据库。 |
.accdb / .mdb | Microsoft Access Database | Access数据库文件,包含表、查询、表单等。 | 中到高风险。常见于小型企业应用,可能存储业务数据。 |
.nsf / .ntf | Lotus Notes Database | Notes数据库,包含邮件、文档、用户信息等。 | 高风险。企业常用的协作平台,包含大量商业信息。 |
2. 配置文件与环境变量
现代应用广泛使用各种格式的配置文件,其中往往包含硬编码的凭证、密钥和敏感的系统设置。
扩展名 | 文件类型/来源 | 潜在的敏感信息 | 备注/风险 |
.env | 环境变量文件 (Laravel, Docker, Node.js) | 数据库连接字符串、API密钥、应用密钥、调试模式开关。 | 极高风险。通常以明文形式存储,泄露后可直接导致服务被接管。 |
.yml / .yaml | YAML配置文件 (Docker, Kubernetes, Ansible) | 服务配置、环境变量、密码、密钥、内部网络地址。 | 高风险。常用于编排和自动化,泄露会导致基础设施暴露。 |
.conf / .ini / .cfg | 通用配置文件 | 服务器设置、数据库连接、硬编码凭证。 | 中到高风险。常见于Nginx、Apache或PHP等应用。 |
.properties | Java 属性文件 (Spring Boot, etc.) | 数据库URL、用户名、密码,以及其他应用配置。 | 高风险。Java生态中常见的凭证存储方式。 |
.ora | Oracle Configuration File | Oracle数据库配置文件,如tnsnames.ora。 | 中到高风险。可能包含连接字符串和认证信息。 |
.dsn | Data Source Name File | 数据库连接配置信息,包括服务器地址和认证信息。 | 中风险。为应用程序提供数据源的快捷方式。 |
.pac | Proxy Auto-Config | 代理自动配置文件,定义浏览器如何选择代理服务器。 | 中风险。可暴露内部网络结构和代理规则。 |
.toml | Tom's Obvious, Minimal Language | Rust、Go等项目的配置文件,包含依赖和构建配置。 | 中风险。新兴的配置格式,可能包含API密钥和服务配置。 |
.hcl | HashiCorp Configuration Language | Terraform、Vault等工具的配置,包含云服务凭证。 | 高风险。基础设施即代码,泄露可导致云资源被控制。 |
.dockercfg / .docker/config.json | Docker Configuration | Docker registry认证信息、私有仓库凭证。 | 高风险。可能包含容器仓库的访问凭证。 |
3. 开发工具与版本控制
开发过程中产生的临时文件、项目配置或版本控制系统残留,是发现源代码和历史凭证的宝库。
扩展名/目录 | 文件类型/来源 | 潜在的敏感信息 | 备注/风险 |
.git/ (目录) | Git版本控制库 | 完整的源代码、提交历史、远程仓库地址、开发者信息。 | 极高风险。暴露整个.git目录可导致源码和历史凭证完全泄露。 |
.svn/ (目录) | Subversion工作副本元数据 | 文件和目录结构、仓库URL。 | 高风险。暴露.svn目录可能导致源码泄露。 |
.idea/ (目录) | JetBrains IDEs (IntelliJ, PyCharm) | 数据库连接历史、数据源配置(含密码)、本地任务等。 | 中到高风险。开发者不小心提交IDE配置时会泄露。 |
.vscode/ (目录) | Visual Studio Code | launch.json中的调试参数、settings.json中的凭证。 | 中风险。同样是开发者配置泄露的常见来源。 |
.swp / .swo | Vim/Vi Editor Swap File | 编辑器在崩溃或非正常关闭时留下的临时交换文件。 | 中风险。可能包含未保存的源代码或配置文件内容。 |
.history | IDE 本地历史记录插件 | 源代码的历史版本,可能包含曾被硬编码后又删除的密码。 | 高风险。是寻找"已删除"凭证的绝佳途径。 |
.hg/ (目录) | Mercurial版本控制库 | 类似Git,包含完整的源代码历史和分支信息。 | 高风险。虽然不如Git常见,但泄露风险相同。 |
.bzr/ (目录) | Bazaar版本控制库 | Bazaar版本控制系统的工作目录信息。 | 中风险。较少见的版本控制系统,但仍可能泄露源码。 |
.DS_Store | macOS Finder Metadata | 目录结构、文件排列信息,可推断项目结构。 | 低到中风险。虽然不直接包含代码,但可暴露目录结构。 |
4. 凭证、密钥与会话
专门用于存储密码、私钥和会话信息的文件,是攻击者直接利用的目标。
扩展名 | 文件类型/来源 | 潜在的敏感信息 | 备注/风险 |
.kdbx / .kdb | KeePass Password Safe | 加密的密码数据库,包含大量账户和密码。 | 极高风险。若能获取主密码(或通过其他途径破解),则所有凭证失陷。 |
.pem / .key / .crt | PEM / Private Key / Certificate | SSL私钥、SSH私钥、证书。 | 极高风险。可用于解密流量、冒充服务器或免密登录服务器。 |
.ppk | PuTTY Private Key | PuTTY SSH客户端使用的私钥格式。 | 极高风险。可用于SSH免密登录目标服务器。 |
.p12 / .pfx | PKCS#12 | 包含私钥和证书的加密包。 | 极高风险。通常受密码保护,但若密码薄弱或泄露,后果严重。 |
.jks | Java Keystore | 存储Java应用证书和密钥的库文件。 | 高风险。尝试默认密码(如`changeit`)可能破解成功。 |
.rdp | Remote Desktop Connection | 远程主机地址、用户名,有时包含加密的密码。 | 中风险。可用于横向移动或信息收集。 |
.ovpn | OpenVPN Configuration | VPN连接配置,可能内联证书和密钥。 | 高风险。泄露可导致获得内网访问权限。 |
.snm | MobaXterm Session File | MobaXterm会话配置,可能存储SSH/RDP等会话凭证。 | 高风险。泄露后可被导入并直接使用。 |
.asc | ASCII Armored PGP Key | PGP公钥或私钥的ASCII格式。 | 高风险。私钥泄露可用于解密通信或伪造签名。 |
.gpg | GNU Privacy Guard Key | GPG加密密钥环或加密文件。 | 高风险。包含加密密钥和可能的加密数据。 |
.keychain | macOS Keychain | macOS系统的密码管理器数据库。 | 极高风险。包含用户的所有保存密码和证书。 |
.credx | Windows Credential Manager | Windows凭证管理器的加密凭证文件。 | 高风险。包含Windows系统中保存的凭证信息。 |
5. 备份、归档与镜像
因疏忽而泄露的备份文件是敏感信息泄露的主要源头之一。
扩展名 | 文件类型/来源 | 潜在的敏感信息 | 备注/风险 |
.bak / .old / .backup | 通用备份文件 | 可能是任意文件的备份,如源代码、配置文件、数据库。 | 高风险。在Web目录中发现这类文件通常意味着严重的信息泄露。 |
.tar / .zip / .gz / .rar / .7z | 压缩归档文件 | 完整的项目源码、网站文件、日志、个人数据等。 | 风险不定。风险极高,具体取决于归档内容。 |
.vmdk / .ova / .vdi | 虚拟机磁盘/镜像 | 一个完整的操作系统镜像,包括所有用户文件、配置和软件。 | 极高风险。获取此文件相当于拥有了一台服务器的物理访问权限。 |
.vhdx / .vhd | Hyper-V Virtual Hard Disk | 微软Hyper-V虚拟机的硬盘镜像文件。 | 极高风险。与VMDK类似,包含完整的虚拟机数据。 |
.qcow2 | QEMU Copy-On-Write | QEMU/KVM虚拟机的磁盘镜像格式。 | 极高风险。Linux虚拟化环境中常见的镜像格式。 |
.img / .iso | Disk Image File | 光盘镜像或磁盘镜像,可能包含系统安装文件或数据。 | 中到高风险。取决于镜像内容,可能包含敏感数据或系统信息。 |
.ghost | Norton Ghost Image | Norton Ghost创建的系统备份镜像。 | 高风险。包含完整的系统和用户数据备份。 |
6. 日志、流量与调试
记录程序运行状态的文件,可能无意中捕获了敏感数据。
扩展名 | 文件类型/来源 | 潜在的敏感信息 | 备注/风险 |
.log | 日志文件 | 用户输入、错误信息(可能含堆栈跟踪和凭证)、会话ID。 | 中到高风险。日志文件是信息收集的重要来源。 |
.saz | Fiddler Session Archive | 捕获的HTTP/HTTPS流量,包含请求/响应头、Cookie、POST数据。 | 高风险。可能包含会话令牌、API密钥、明文密码。 |
.har | HTTP Archive Format | 浏览器开发者工具导出的网络请求记录。 | 高风险。与 .saz 类似,包含完整的HTTP交互信息。 |
.pcap / .pcapng | Packet Capture File | Wireshark/tcpdump捕获的原始网络数据包。 | 高风险。可分析出未加密协议(如FTP, Telnet)中的明文密码。 |
.trc | Trace File | 数据库或应用程序跟踪文件。 | 中风险。可能包含SQL语句、连接细节等调试信息。 |
.etl | Event Trace Log | Windows事件跟踪日志,包含系统和应用程序的详细运行信息。 | 中风险。可能包含敏感的系统调用和应用程序行为数据。 |
.cap | Network Capture File | 网络数据包捕获文件,类似pcap格式。 | 高风险。包含网络通信的原始数据包。 |
…… | …… | 留你补充 | …… |
除了用扫描工具收集这些指定的后缀,也可以在后渗透中写脚本来查找。例如吐司@sky-ant作者给出的一个sh脚本,你可以根据我收集的后缀来改写。
#!/bin/bash
# 检查输入参数
if [ $# -lt 1 ]; then
echo "用法: $0 <输出文件> [搜索目录...]"
echo "例如: $0 result.txt /etc /home"
exit 1
fi
# 输出文件
OUTPUT_FILE="$1"
shift
# 搜索目录,默认为根目录
SEARCH_DIRS=("$@")
[ ${#SEARCH_DIRS[@]} -eq 0 ] && SEARCH_DIRS=("/")
# 定义文件扩展名和关键词
FILE_EXTENSIONS=".*\.(properties|xml|cnf|yml|ini|sh)"
KEYWORDS="pass|pwd|jdbc|expect"
# 开始扫描
echo "开始扫描目录:${SEARCH_DIRS[*]}"
find "${SEARCH_DIRS[@]}" \
-regextype posix-extended \
-regex "$FILE_EXTENSIONS" \
-type f \
! -path "/proc/*" ! -path "/sys/*" ! -path "/dev/*" ! -path "/run/*" \
-print0 | xargs -0 -P 4 egrep -iH -- "$KEYWORDS" > "$OUTPUT_FILE"
echo "扫描完成,结果保存到 $OUTPUT_FILE"
#收藏夹吃灰专用#