Skip to main content

Post-exploitation NTDS dump analyzer — correlates secretsdump output with hashcat potfiles to identify shared passwords and weak credentials in Active Directory

Project description

TattleTale

PyPI version PyPI downloads License: MIT Python 3.10+

Help

Analyze secretsdump output and hashcat potfiles to find shared passwords, weak credentials, and other issues in Active Directory. No dependencies.

Built from years of hands-on experience in enterprise penetration testing. Used in real-world assessments of Fortune 500 companies and critical infrastructure.

Install

pip

pip install tattletale

Standalone

It's a single Python file with no dependencies. Grab it and go:

curl -O https://raw.githubusercontent.com/coryavra/tattletale/master/tattletale.py

Container

The included Containerfile works with Apple Containers (macOS 26+) and Docker (OCI-compliant).

# Apple Containers (native to macOS)
container build -t tattletale .
container run --rm -v "$(pwd)/data:/mnt/shared" tattletale \
    -d /mnt/shared/ntds.dit \
    -p /mnt/shared/cracked.pot \
    -o /mnt/shared/report

# Docker works too
docker build -t tattletale .
docker run --rm -v "$(pwd)/data:/mnt/shared" tattletale \
    -d /mnt/shared/ntds.dit \
    -p /mnt/shared/cracked.pot \
    -o /mnt/shared/report

Usage

tattletale -d <file> [-p <file>] [-t <files>] [options]

REQUIRED
    -d, --dit <file>            NTDS.DIT dump file from secretsdump

OPTIONS
    -p, --pot <file>            Hashcat potfile with cracked hashes
    -t, --targets <files>       Target lists, space-separated (e.g. -t admins.txt svc.txt)
    -o, --output <dir>          Export reports to directory
    -r, --redact                Hide passwords completely (************)
    -R, --redact-partial        Show first two chars only (Pa**********)
    -h, --help                  Show this help message
    -v, --version               Show version number

POLICY (check cracked passwords against requirements)
    --policy-length <n>         Minimum password length
    --policy-complexity <n>     Require n-of-4 character classes (1-4)
                                (uppercase, lowercase, digit, symbol)

Examples

# Basic analysis - just the dump file
tattletale -d ntds.dit

# With cracked hashes from hashcat
tattletale -d ntds.dit -p hashcat.pot

# Track high-value targets (multiple lists works)
tattletale -d ntds.dit -p hashcat.pot -t domain_admins.txt svc_accounts.txt

# Redacted output for screenshotting
tattletale -d ntds.dit -p hashcat.pot -r

# Check cracked passwords against policy (8 chars, 3-of-4 complexity)
tattletale -d ntds.dit -p hashcat.pot --policy-length 8 --policy-complexity 3

Output

Statistics

Overview of the dump: total accounts, cracking progress, hash types, and security warnings like empty passwords or legacy LM hashes.

Statistics

High Value Targets

Shows the status of accounts from your target lists.

High Value Targets

Shared Credentials

Accounts that share the same password hash. Grouped by password with target accounts highlighted.

Shared Credentials

Password Analysis

Pattern analysis across all cracked passwords: length distribution, character composition, common patterns (seasons, years, keyboard walks), and most common passwords.

Password Analysis

Input formats

File Format Example
DIT dump secretsdump output DOMAIN\user:1001:LM_HASH:NT_HASH:::
Potfile hashcat potfile NT_HASH:cleartext
Targets one username per line administrator

See also

Standing on the shoulders of giants:

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tattletale-3.3.0.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tattletale-3.3.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file tattletale-3.3.0.tar.gz.

File metadata

  • Download URL: tattletale-3.3.0.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tattletale-3.3.0.tar.gz
Algorithm Hash digest
SHA256 cbdc2d4fa77257b19cb8d4d48fa30f871ee10623253ef59053a2a4a31eaea0f2
MD5 1c0160975fa708c827316dde72b9ac8a
BLAKE2b-256 8ce75039a800bf30fc49f4fac1a29c669f6473e0aae01047f4d45c6b41ded17d

See more details on using hashes here.

File details

Details for the file tattletale-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: tattletale-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tattletale-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef6c5bb7da39acf134ada64ed177e8d5ee4e44f48a2b76464355b03dee765a9a
MD5 1a12f571068d4c94c848cccf1b0c5301
BLAKE2b-256 19261c08c33f399544e8527b3fd7d07e9926da79a8c02ff5186878f141447cdb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page