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:
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user