Practical documentation · Authorized use only
EyeWitness
EyeWitness turns an approved list of web endpoints into visual evidence and a reviewable report. It is valuable for attack-surface validation, exposed-admin-page review, and certificate or header triage without treating a screenshot as a vulnerability finding.
Start safely and get useful results
Best for
- • Web inventory evidence
- • Human review of exposed services
Not for
- • Credential testing
- • Authenticated application crawling
Before you run anything
- • Document the authorized target, time window, success criteria, data-handling rules, and a named stop contact before you begin.
- • Confirm the installed version with the tool’s version or help command, then compare its documented behavior with the linked upstream project before relying on any option.
Practical workflows
Capture a small approved URL list
Scenario: Review the public URLs in a controlled staging inventory.
python3 EyeWitness.py --web -f approved-urls.txt -d eyewitness-outputRead targets from a reviewed file and store the generated report in a dedicated evidence directory.
Expected use: Expect screenshots, headers, and a report; manually validate redirect and TLS anomalies.
Make evidence reproducible
Scenario: Compare the exposed staging surface before and after a release.
sha256sum approved-urls.txt > approved-urls.txt.sha256Hash the input scope before capture so the report can be tied to a fixed target list.
Expected use: The output supports visual comparison; it does not establish authentication, authorization, or exploitability.
Interpret results like an analyst
- • Use screenshots to prioritize human review, particularly unexpected login pages, default pages, and certificate warnings.
- • Headers are context only; verify them with the service owner before reporting a security impact.
Common mistakes and operating tips
Avoid
- • Feeding unreviewed Internet-wide target lists into the tool.
- • Interpreting a failed screenshot as a host outage without checking redirects, DNS, or TLS.
Operational discipline
- • Treat command output as evidence, not a conclusion: retain the command, version, scope, timestamp, and a redacted result in the engagement record.
- • Start with the smallest safe scope, validate expected behavior in a lab or pilot, then expand only when the authorization and monitoring plan support it.
Verify against the current upstream
Tool behavior and release syntax can change. Treat this guide as practical operating context, then verify version-specific details against the upstream project before an assessment.
Open authoritative upstream documentation