πŸ›‘οΈ Methodology Checklist

  • Capture with tcpdump: sudo tcpdump -i [IFACE] -w capture.pcap
  • Filter for credentials: HTTP Basic auth, FTP, Telnet, SMTP AUTH
  • PCredz on capture: python3 pycredz.py -f capture.pcap
  • Analyse with Wireshark: filter http.authorization or ftp.request.command == "PASS"
  • MITM with Responder for LLMNR/NBT-NS hash capture
  • ARP spoofing for targeted capture (only in authorised scope)
  • Document all clear-text credentials found in traffic

🎯 Operational Context

Use when: Network-level access obtained or MITM position achieved β€” capture and analyze traffic for plaintext credentials in HTTP, FTP, SMTP, LDAP. Think Dumber First: tcpdump -i [IFACE] -w capture.pcap immediately after getting shell on a network-connected host. Then analyze with Wireshark. Look for: HTTP POST with password=, FTP AUTH, SMTP AUTH, LDAP Simple Bind, Telnet. Skip when: All traffic is encrypted (TLS everywhere) β€” pivot to Responder for NTLM hash capture instead.


⚑ Tactical Cheatsheet

CommandTactical Outcome
./Pcredz -f capture.pcapAuto-extract credentials from pcap file
./Pcredz -i eth0 -vLive credential capture on interface
strings capture.pcap | grep -E "[0-9]{4}.[0-9]{4}.[0-9]{4}.[0-9]{4}"Hunt credit card numbers in pcap
FilterFinds
ip.addr == [TARGET_IP]Traffic to/from specific host
tcp.port == 80HTTP traffic
http.request.method == "POST"Login form submissions
http contains "password"Packets containing password string
ftpFTP session (USER/PASS plaintext)
snmpSNMP community strings
tcp.stream eq 5Follow a specific TCP conversation

πŸ”¬ Deep Dive & Workflow

Wireshark display filters:

Vulnerable Protocols Reference

Internal networks still commonly run unencrypted services β€” these expose credentials in cleartext:

UnencryptedEncrypted AlternativeWhat’s Exposed
HTTPHTTPSLogin form credentials
FTPFTPS / SFTPUsernames and passwords
SNMP v1/v2cSNMPv3Community strings (used as passwords)
TelnetSSHFull session including credentials
LDAPLDAPSBind DN credentials
POP3/IMAP/SMTPSecure variantsEmail credentials

Wireshark Hunting Techniques

Finding HTTP login forms:

  1. Filter: http.request.method == "POST"
  2. Inspect HTML Form URL Encoded section in Packet Details
  3. Or: http matches "pass|user|login"

Finding FTP credentials:

  1. Filter: ftp
  2. Look for USER [username] and PASS [password] commands
  3. For transferred files: File β†’ Export Objects β†’ FTP-DATA β†’ Save

Needle-in-haystack search (Ctrl+F in Wireshark):

  • Set to: Packet Details β†’ String
  • Search: Authorization, password, credentials, api_key

SNMP community strings:

  1. Filter: snmp
  2. Look for communityString field in packet details

PCredz β€” Automated Extraction

Automatically extracts NTLM hashes, FTP, HTTP, SNMP, and credit card data from live traffic or saved captures:

# Install
git clone https://github.com/lgandx/PCredz.git
sudo apt install python3-pip libpcap-dev
pip3 install Cython python-libpcap
chmod +x Pcredz
 
# Against a file
./Pcredz -f capture.pcap
 
# Live capture
./Pcredz -i eth0 -v

πŸ› οΈ Troubleshooting & Edge Cases

ProblemCauseFix
tcpdump requires rootLow-privilege shellIf sudo allowed: sudo tcpdump ...; or check capabilities: getcap /usr/sbin/tcpdump
Capture file too largeLong capture durationLimit: tcpdump -C 100 (100MB rotate) or capture only specific protocols: tcpdump port 80 or port 21
No credentials in captureAll traffic encryptedPivot to Responder for NTLM: python Responder.py -I [IFACE] -A (analyze mode first)
Wireshark filter not finding credsWrong protocol assumptionTry: http.request.method == POST, ftp contains PASS, smtp.req.command == AUTH
Network interface not visibleNIC in wrong namespace or containerCheck: ip link show; in Docker: nsenter --net=/proc/1/ns/net ip link

πŸ“ Reporting Trigger

Finding Title: Plaintext Credentials Captured via Network Traffic Analysis Impact: Unencrypted credential transmission over legacy protocols (HTTP Basic Auth, FTP, LDAP Simple Bind) exposes authentication credentials to any network observer with access to the segment, enabling immediate account compromise. Root Cause: Legacy protocols transmit credentials without encryption. No network segmentation preventing access to authentication traffic. Recommendation: Enforce TLS/encryption for all authentication protocols. Disable legacy plaintext protocols (Telnet, FTP, HTTP Basic Auth). Implement network segmentation to isolate authentication servers. Deploy network monitoring to detect plaintext credential transmission.