Skip to content

Remove the hawk icon; add Recon and Vuln Scan tabs - #6

Merged
BruceLittle merged 3 commits into
mainfrom
claude/stoic-archimedes-qnrnxl
Sep 17, 2026
Merged

BruceLittle merged 3 commits into
mainfrom
claude/stoic-archimedes-qnrnxl

Conversation

@BruceLittle

@BruceLittle BruceLittle commented Sep 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Removes the SVG hawk icon and its .title-row/.hawk-icon CSS from the header — back to plain text title
  • Adds a sixth Recon tab for domain/IP reconnaissance:
    • DNS records (A/AAAA/MX/TXT/NS/CNAME/SOA) via DNS-over-HTTPS (dns.google) for domains; reverse DNS (PTR) for IPv4 targets
    • WHOIS/RDAP lookup via rdap.org's bootstrap redirector, with a parsed summary (registrar, status, key dates, name servers) plus the raw response in a collapsible block
    • HTTP reachability check across common web ports (80/443/8080/8443/8000/3000) — explicitly labeled as not a full port scan
    • Ready-to-copy ping/traceroute/whois/nmap commands, since true ICMP ping, traceroute, and a real port scan need raw sockets no browser exposes
  • Adds a seventh Vuln Scan tab for basic vulnerability/misconfiguration checks, in the spirit of securityheaders.com or Mozilla Observatory:
    • Security header checks (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy)
    • CORS policy inspection, flagging a permissive-plus-credentialed configuration
    • Probes for commonly-exposed sensitive paths (.env, .git/HEAD, .git/config, wp-config.php.bak, id_rsa, backup files, phpinfo.php, server-status, .htaccess, .DS_Store, security.txt)
    • Header checks use an honest three-state model (Present / Not readable cross-origin), never a binary Present/Missing — browsers only expose a small CORS-safelisted set of response headers to cross-origin JS, so an absent read is unproven, not confirmed missing. Falls back to a body-embedded <meta> CSP tag when present, and always offers a curl command for ground truth.
  • Updates tools/zeithawk/README.md with entries and "limits" sections for both new tools

Test plan

  • Verified with Playwright: page loads with no console/page errors, all seven tabs load correctly
  • Confirmed Recon's sections all render a graceful "couldn't load" state when network calls fail (this sandbox's own proxy blocks the relevant hosts) — live DNS/RDAP/reachability results need testing in an unrestricted browser
  • Verified Vuln Scan's header/CORS/path logic against a mocked target with realistic Access-Control-Expose-Headers behavior (Playwright route mocking) — confirmed exposed headers report "Present", non-exposed headers correctly report "Not readable cross-origin" rather than a false "Missing", and exposed-path detection (200/401/403) works as intended
  • Manually verify Recon and Vuln Scan against example.com and a real domain you control, in a normal browser

🤖 Generated with Claude Code

https://claude.ai/code/session_01SkupxCaLk9Nnq24YhigdAn

Back to plain text title. The icon wasn't landing visually after two
rounds of iteration.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SkupxCaLk9Nnq24YhigdAn
Adds a sixth ZeitHawk tab for domain/IP reconnaissance:

- DNS records (A/AAAA/MX/TXT/NS/CNAME/SOA) via DNS-over-HTTPS
  (dns.google) for domains, reverse DNS (PTR) for IPv4 targets
- WHOIS/RDAP lookup via rdap.org's bootstrap redirector, with a parsed
  summary (registrar, status, key dates, name servers) plus the raw
  response in a collapsible details block
- HTTP reachability check across a handful of common web ports
  (80/443/8080/8443/8000/3000) — explicitly not a full port scan

True ICMP ping, traceroute, and a real port scan need raw sockets no
browser exposes, so instead of faking them, Recon generates ready-to-copy
ping/traceroute/whois/nmap commands for the user's own terminal. See the
new README section for why each of these is a hard technical wall, not a
missing feature.

Verified with Playwright: all sections render and degrade gracefully
when the network calls fail (this sandbox's own proxy blocks dns.google/
rdap.org/arbitrary outbound hosts, so live results need testing in an
unrestricted browser).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SkupxCaLk9Nnq24YhigdAn
@BruceLittle BruceLittle changed the title Remove the hawk icon from ZeitHawk's header Remove the hawk icon; add a Recon tab (DNS, WHOIS/RDAP, HTTP reachability) Sep 17, 2026
Checks for common security headers, flags permissive+credentialed CORS,
and probes commonly-exposed sensitive paths (.env, .git/, backup files,
etc). Header checks use a three-state model (Present / Not readable
cross-origin) rather than a binary Present/Missing, since browsers only
expose a small CORS-safelisted set of response headers to cross-origin
JS — a header absent from that read is unproven, not confirmed missing.
Falls back to a body-embedded <meta> CSP tag and a curl command for
ground truth on anything not readable via fetch().

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SkupxCaLk9Nnq24YhigdAn
@BruceLittle BruceLittle changed the title Remove the hawk icon; add a Recon tab (DNS, WHOIS/RDAP, HTTP reachability) Remove the hawk icon; add Recon and Vuln Scan tabs Sep 17, 2026
@BruceLittle
BruceLittle merged commit 39ccef1 into main Sep 17, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants