Initial commit: Laravel OSINT platform

Multi-user OSINT investigation tool with owner-controlled per-user and
per-group access grants. Includes Sherlock, theHarvester, crt.sh, WHOIS,
and ip-api.com collectors wired through a pluggable Runner/queue pipeline,
investigation search, and printable/CSV/JSON reporting.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
cedry2k1992
2026-07-20 10:22:05 +03:00
co-authored by Claude Sonnet 5
commit 873699e23e
165 changed files with 18507 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
use WithoutModelEvents;
/**
* Seed the application's database.
*/
public function run(): void
{
// User::factory(10)->create();
User::factory()->create([
'name' => 'Test User',
'email' => 'test@example.com',
]);
$this->call(SourceSeeder::class);
}
}
+58
View File
@@ -0,0 +1,58 @@
<?php
namespace Database\Seeders;
use App\Models\Source;
use Illuminate\Database\Seeder;
class SourceSeeder extends Seeder
{
/**
* Catalog of free/open-source OSINT tools. `runner` is a display-only
* label; the actual dispatch is App\Osint\RunnerRegistry, keyed by `key`.
*/
public function run(): void
{
$sources = [
[
'key' => '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',
],
];
foreach ($sources as $source) {
Source::updateOrCreate(['key' => $source['key']], $source);
}
}
}