## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-LGANDX-PCREDZ
# PCredz 2.1.0
PCredz 从网络流量(PCAP 文件或实时捕获)中提取凭据和认证令牌。
## 功能特性
### 支持协议
从 IPv4 和 IPv6 流量中提取凭据:
* **NTLM** :来自 HTTP、SMB、LDAP、MSSQL、DCE-RPC 等的 NTLMv1/v2 哈希
* **Kerberos** :AS-REQ 预认证(etype 23)哈希
* **HTTP** :基本认证、表单字段(密码、API 密钥、令牌)
* **FTP** :USER/PASS 命令
* **IRC** :NICK/USER/PASS 认证
* **SMTP** :AUTH PLAIN 和 AUTH LOGIN
* **IMAP** :LOGIN 认证
* **POP3** :USER/PASS 命令
* **LDAP** :简单绑定(明文密码)
* **SNMP** :团体字符串(v1/v2c)
* **MSSQL** :TDS 协议认证
* **信用卡** :卡号提取(可选)
### 输出格式
* **Hashcat 兼容** :所有哈希已格式化,可直接用于 hashcat
* NTLMv1:`-m 5500`
* NTLMv2:`-m 5600`
* Kerberos:`-m 7500`
* **组织化的日志** :每种凭据类型的单独文件位于 `logs/` 目录
* **会话日志** :完整时间线记录在 `CredentialDump-Session.log`
* **去重** :相同凭据只记录一次(除非使用 `-v` 标志)
### 链路层支持
* **以太网** (DLT_EN10MB)
* **Linux 粗捕获** (DLT_LINUX_SLL)
* **原始 IP** (DLT_RAW)
* **自动检测** 链路层类型
## 安装
### Docker(推荐)
root@kitploit:~
# 构建容器
docker build -t pcredz .
# 挂载当前目录运行
docker run --rm -v $(pwd):/data pcredz -f /data/capture.pcap
# 实时捕获(需要 --net=host)
docker run --rm --net=host -v $(pwd):/data pcredz -i eth0 -v
### Linux
**Debian/Ubuntu:**
root@kitploit:~
sudo apt-get install python3-pip libpcap-dev
pip3 install pcapy-ng
**Fedora/RHEL:**
root@kitploit:~
sudo dnf install python3-pip libpcap-devel
pip3 install pcapy-ng
**Arch Linux:**
root@kitploit:~
sudo pacman -S python-pip libpcap
pip3 install pcapy-ng
## 使用
### 基本示例
root@kitploit:~
# 解析单个 PCAP 文件
./Pcredz -f capture.pcap
# 递归解析目录中的所有 PCAP 文件
./Pcredz -d /path/to/pcap/directory/
# 在接口上实时捕获(需要 root 权限)
sudo ./Pcredz -i eth0
# 详细模式(显示重复凭据)
./Pcredz -f capture.pcap -v
# 自定义输出目录
./Pcredz -f capture.pcap -o /tmp/pcredz-output/
### 选项
root@kitploit:~
必需(选择其一):
-f FILE 要解析的 PCAP 文件
-d DIR 要递归解析的目录
-i INTERFACE 用于实时捕获的接口
可选:
-v 详细模式(打印重复凭据)
-t 打印时间戳
-o DIR 日志输出目录(默认:./)
-c 禁用信用卡扫描
--disable PROTO 禁用协议(可多次使用)
选项:NTLM, HTTP, FTP, IRC, LDAP, SMTP, Kerberos, SNMP, MSSQL
--exclude-host IP 排除主机 IP(可多次使用)
-h 显示帮助信息
### 输出文件
所有凭据保存到 `logs/` 目录:
root@kitploit:~
logs/
├── NTLMv1.txt # NTLMv1 哈希(hashcat -m 5500)
├── NTLMv2.txt # NTLMv2 哈希(hashcat -m 5600)
├── MSKerb.txt # Kerberos 哈希(hashcat -m 7500)
├── HTTP-Basic.txt # HTTP 基本认证凭据
├── HTTP-PasswordFields.txt # HTTP 表单字段和 API 密钥
├── FTP-Plaintext.txt # FTP 凭据
├── IRC-Plaintext.txt # IRC 凭据
├── SMTP-Plaintext.txt # SMTP 凭据
├── LDAP-Simple.txt # LDAP 简单绑定凭据
├── MSSQL-Plaintext.txt # MSSQL 凭据
└── SNMPv1.txt # SNMP 团体字符串
加上一个会话日志:
root@kitploit:~
CredentialDump-Session.log # 带时间戳的完整会话
## 示例
### 提取 NTLM 哈希
root@kitploit:~
./Pcredz -f capture.pcap
# 输出:
# 192.168.1.10:445 > 192.168.1.20:1024
# NTLMv2 完整哈希为:admin::DOMAIN:1122334455667788:ABC123...
# 配合 hashcat 使用:
hashcat -m 5600 logs/NTLMv2.txt wordlist.txt
### 实时捕获
root@kitploit:~
sudo ./Pcredz -i eth0 -v
# 实时捕获并显示凭据
# 按 Ctrl+C 停止
### 批量处理
root@kitploit:~
# 处理目录树中的所有 PCAP
./Pcredz -d /forensics/network-captures/
# 正在解析 /forensics/network-captures/day1/morning.pcap...
# 正在解析 /forensics/network-captures/day1/afternoon.pcap...
# ...
### 协议过滤
root@kitploit:~
# 禁用特定协议(减少噪音)
./Pcredz -f capture.pcap --disable HTTP --disable SNMP
# 仅捕获 NTLM 哈希
./Pcredz -f capture.pcap --disable HTTP --disable FTP --disable IRC \
--disable LDAP --disable SMTP --disable Kerberos --disable SNMP --disable MSSQL
# 仅关注明文凭据
./Pcredz -f capture.pcap --disable NTLM --disable Kerberos
### 主机排除
root@kitploit:~
# 在实时捕获中排除自身 IP(常见用例)
sudo ./Pcredz -i eth0 --exclude-host 192.168.1.50 -v
# 排除多个主机
./Pcredz -f capture.pcap --exclude-host 192.168.1.100 --exclude-host 10.0.0.5
# 渗透测试:捕获目标凭据,排除自身
sudo ./Pcredz -i eth0 --exclude-host $(hostname -I | awk '{print $1}') -v
## 性能
### 优化
* **文件 I/O 缓存** :避免重复文件读取(性能提升 10-100 倍)
* **正则预编译** :编译模式缓存(性能提升 2-5 倍)
* **智能去重** :内存中跟踪已见的凭据
* **链路层检测** :自动检测并缓存偏移(开销极小)
### 基准测试
现代硬件上的典型性能:
* **小文件** (<10MB):<1 秒
* **中等文件** (100MB):5-10 秒
* **大文件** (1GB+):1-2 分钟
* **实时捕获** :5,000-10,000 个数据包/秒
## 故障排除
### pcapy-ng 未找到
root@kitploit:~
pip3 install pcapy-ng
# 如果失败:
pip3 install --break-system-packages pcapy-ng
### 权限拒绝(实时捕获)
实时捕获需要 root 权限:
root@kitploit:~
sudo ./Pcredz -i eth0
### 未找到凭据
* 验证 PCAP 中包含预期的协议(使用 Wireshark)
* 检查流量是否已加密(HTTPS、SSH 等)
* 尝试详细模式(`-v`)查看所有活动
* 检查链路层类型是否受支持
## 贡献
发现错误或想添加功能?欢迎贡献!
1. 彻底测试你的更改
2. 遵循现有代码风格
3. 为新功能添加示例
4. 更新文档
## 许可证
GNU General Public License v3.0
## 作者
**Laurent Gaffie**
* 邮箱:some-email@example.com
* X/Twitter:@secorizon
* GitHub:lgandx/PCredz