'sherlock', 'name' => 'Sherlock', 'description' => 'Checks a username for presence across 400+ social media and community sites.', 'target_types' => ['username'], 'runner' => 'python:sherlock', ], [ 'key' => 'theharvester', 'name' => 'theHarvester', 'description' => 'Gathers emails, subdomains, and hosts for a domain from public sources (crt.sh, OTX, HackerTarget, CertSpotter, ThreatMiner, RapidDNS, Anubis).', 'target_types' => ['domain'], 'runner' => 'python:theharvester', ], [ 'key' => 'crtsh', 'name' => 'crt.sh', 'description' => 'Certificate transparency log search, used to enumerate subdomains for a domain.', 'target_types' => ['domain'], 'runner' => 'http:crtsh', ], [ 'key' => 'whois', 'name' => 'WHOIS', 'description' => 'Domain registration lookup (registrar, dates, name servers).', 'target_types' => ['domain'], 'runner' => 'python:whois', ], [ 'key' => 'ip-api', 'name' => 'ip-api.com', 'description' => 'Free IP geolocation lookup.', 'target_types' => ['ip'], 'runner' => 'http:ip-api', ], [ 'key' => 'holehe', 'name' => 'Holehe', 'description' => 'Checks whether an email address is registered on 120+ sites via the password-reset-oracle technique.', 'target_types' => ['email'], 'runner' => 'python:holehe', ], ]; foreach ($sources as $source) { Source::updateOrCreate(['key' => $source['key']], $source); } } }