Add Gravatar and DNS Records collectors

Two pure-PHP collectors, no Python/venv/subprocess needed:
- GravatarRunner (email): checks gravatar.com/avatar/{md5}?d=404 for a
  200 vs 404. Scoped to that binary signal since Gravatar's profile
  JSON endpoint now requires API auth even for real, public profiles
  (confirmed against Gravatar's own creator's email).
- DnsRunner (domain): dns_get_record() for A/AAAA/MX/NS/TXT/CNAME. Raw
  payload is naturally keyed by record type, which the existing
  generic list-renderer on the investigation page turns into one
  collapsible section per type with no UI changes needed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
cedry2k1992
2026-07-20 11:59:20 +03:00
co-authored by Claude Sonnet 5
parent bb15f13bac
commit 86f73c46b2
8 changed files with 296 additions and 3 deletions
+14
View File
@@ -56,6 +56,20 @@ class SourceSeeder extends Seeder
'target_types' => ['email'],
'runner' => 'python:holehe',
],
[
'key' => 'gravatar',
'name' => 'Gravatar',
'description' => 'Checks whether an email address has a registered Gravatar image.',
'target_types' => ['email'],
'runner' => 'http:gravatar',
],
[
'key' => 'dns',
'name' => 'DNS Records',
'description' => 'Looks up A, AAAA, MX, NS, TXT, and CNAME records for a domain.',
'target_types' => ['domain'],
'runner' => 'dns:records',
],
];
foreach ($sources as $source) {