TOOL^:Tools

LaZagne

Recover locally accessible stored credentials and distinguish user-context recovery from administrative access.

intermediateupdated 2026-10-12LaZagne

LaZagne

LaZagne queries supported local applications and credential stores. The report recovers saved application credentials. It does not grant a new identity simply by being run.

Select a narrow collection

whoami
.\laZagne.exe -h
.\laZagne.exe browsers -h
.\laZagne.exe browsers
.\laZagne.exe browsers -firefox

Run under the profile whose store you are reviewing. Administrator rights can increase coverage, but store encryption, available keys and application version still matter. Current browser protections can make an older module unable to decrypt a value.

Preserve a controlled result

New-Item -ItemType Directory -Path 'C:\Lab\Evidence' -Force
.\laZagne.exe browsers -oJ -output 'C:\Lab\Evidence'

Avoid broad all collection when a single browser is enough. Output may contain plaintext credentials: keep it out of public notes. Classify each result by application, account and retrieval context.

Success: a particular saved credential is recovered and, if required by scope, validated on one named service. Separate recovery from successful login and separate a local account from a same-named domain account. Redact the value in evidence. Fix unsafe storage and account reuse, and rotate confirmed exposed credentials.

Choose a collection context

ContextExpected coverageLimitation
Normal logged-on userThat profile’s supported application storesOther profiles and machine stores may be inaccessible
Elevated same userAdditional readable storesElevation does not supply every other user’s decryption keys
LocalSystemSome machine/service storesUser-specific encryption can still require user material
Offline copied profileFiles may be availableLive API/key context may be absent

Record the user, profile path and elevation before interpreting recovered values:

whoami /all
$env:USERPROFILE
[Environment]::Is64BitProcess
Get-FileHash .\laZagne.exe -Algorithm SHA256

Select a category before a module

.\laZagne.exe -h
.\laZagne.exe browsers -h
.\laZagne.exe browsers -firefox -vv

Use the current help to discover available modules on this platform. The Linux Python entry point and Windows standalone differ in packaging and supported applications. Do not treat a missing module on one platform as proof the store does not exist.

Interpret results by source

Returned itemValidate before using it
Browser username/passwordOrigin URL, profile and whether the account still exists
Connection-manager credentialHost, protocol and whether the saved realm is local or domain
Wi-Fi keySSID/profile role; unrelated to AD login unless separately confirmed
Token or encrypted blobWhether the tool actually decrypted it and what application accepts it
Empty passwordEmpty stored value, parse failure or unsupported protection

Deduplicate by application, destination and username. Identical account names do not mean identical identities, and an old saved password can remain in a store after rotation.

Troubleshoot a narrow run

Get-ChildItem "$env:APPDATA\Mozilla\Firefox\Profiles" -ErrorAction SilentlyContinue
.\laZagne.exe browsers -firefox -vv -oJ -output 'C:\Lab\Evidence'
SymptomCheck
Profile not foundWhich user’s environment the process uses
Database lockedApplication activity; prefer a consistent reviewed copy when supported
Decryption failureUser context, available keys, master password and application version
Module import/runtime errorStandalone architecture or Python dependencies
JSON parser rejects outputActual export structure; some versions emit multi-line JSON records

Current browser protections may exceed an older module’s coverage. Diagnose the exact store and version rather than retrying all with broader permissions immediately.

Evidence and remediation

Save a redacted record containing module, destination, username and retrieval context. A separately approved login proves validity; it does not change the fact that local recovery depended on the original profile’s access. Rotate confirmed exposed values, address unsafe storage and reduce credential reuse. To identify broader local permission paths continue with linPEAS & winPEAS.

How attacks work. Examples use fictional lab values; replace placeholders only with values from the system you are testing.

On this page

☧ CPTS · ordered posts

Locked

Unlock with your Main_Key through local GPG.

Start the local GPG helper

In your cheatsheet checkout, run:

npm run unlock:helper

Open the link it prints, or paste its pairing code below. Keep the terminal open until GPG finishes.

Import an index you already decrypted

Download the encrypted index, then decrypt with GPG:

gpg --output report-index.json --decrypt report-index.gpg

Your private key stays in GPG. The decrypted index is saved in this browser so you can reopen it after navigation, refreshes and restarts. Lock this browser or clear this site's browser data to remove the saved index. Nothing is uploaded.