gdorks-web-generator-7cmse / command-center.html
secutorpro's picture
🐳 14/07 - 23:44 - passe en reel operationel
ad2db33 verified
Raw
History Blame Contribute Delete
26.9 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Inverse SEO: De-referencing / No-index -->
<meta name="robots" content="noindex, nofollow, noarchive, nosnippet, noimageindex, notranslate, none">
<meta name="googlebot" content="noindex, nofollow, noarchive, nosnippet, noimageindex, none">
<meta name="bingbot" content="noindex, nofollow, noarchive, nosnippet, none">
<meta name="duckduckbot" content="noindex, nofollow, none">
<meta name="yandexbot" content="noindex, nofollow, none">
<meta name="baiduspider" content="noindex, nofollow, none">
<meta name="slurp" content="noindex, nofollow, noarchive, none">
<meta name="twitter" content="noindex, nofollow, none">
<meta name="referrer" content="no-referrer">
<meta http-equiv="x-dns-prefetch-control" content="off">
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<link rel="canonical" href="#">
<title>SentinelAI Command Center</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="command-center.css">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'sans-serif'],
mono: ['JetBrains Mono', 'monospace'],
}
}
}
}
</script>
</head>
<body class="bg-slate-950 text-slate-200 font-sans antialiased min-h-screen overflow-x-hidden">
<!-- Animated Background Grid -->
<div class="fixed inset-0 z-0 pointer-events-none">
<div class="grid-bg"></div>
<div class="absolute top-0 left-1/4 w-[600px] h-[600px] bg-cyan-600/5 rounded-full blur-3xl animate-pulse-slow"></div>
<div class="absolute bottom-0 right-1/4 w-[600px] h-[600px] bg-purple-600/5 rounded-full blur-3xl animate-pulse-slow-delayed"></div>
<div class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-blue-600/3 rounded-full blur-3xl"></div>
</div>
<!-- Top Navigation Bar -->
<nav class="relative z-20 border-b border-slate-800/60 backdrop-blur-xl bg-slate-950/90 sticky top-0">
<div class="max-w-[1600px] mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-14">
<div class="flex items-center gap-4">
<div class="flex items-center gap-2.5">
<div class="w-8 h-8 bg-gradient-to-br from-cyan-400 to-blue-600 rounded-lg flex items-center justify-center shadow-lg shadow-cyan-500/20">
<i data-lucide="shield-check" class="w-4 h-4 text-white"></i>
</div>
<div>
<span class="text-base font-bold text-white tracking-tight">Sentinel<span class="text-cyan-400">AI</span></span>
<span class="hidden sm:inline text-xs text-slate-500 ml-2 font-mono">COMMAND CENTER v2.0</span>
</div>
</div>
</div>
<div class="hidden md:flex items-center gap-1">
<a href="command-center.html" class="nav-link active px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="layout-dashboard" class="w-3.5 h-3.5 inline mr-1"></i>Dashboard
</a>
<a href="index.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="search" class="w-3.5 h-3.5 inline mr-1"></i>GDorks
</a>
<a href="threats.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="alert-triangle" class="w-3.5 h-3.5 inline mr-1"></i>Threats
</a>
<a href="network.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="network" class="w-3.5 h-3.5 inline mr-1"></i>Network
</a>
<a href="seo-mesh-normal.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="network" class="w-3.5 h-3.5 inline mr-1"></i>Mesh Normal
</a>
<a href="seo-mesh-inverse.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="brain-circuit" class="w-3.5 h-3.5 inline mr-1"></i>Mesh Inversé
</a>
<a href="cognitive-inverse-mesh.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="brain-circuit" class="w-3.5 h-3.5 inline mr-1"></i>Cognitive Inversé
</a>
<a href="cognitive-seo-geo-mesh.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="brain" class="w-3.5 h-3.5 inline mr-1"></i>Cognitive SEO/GEO
</a>
<a href="seo-inverse.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="eye-off" class="w-3.5 h-3.5 inline mr-1"></i>SEO Inverse
</a>
<a href="chs-backend.html" class="nav-link px-3 py-1.5 rounded-lg text-xs font-medium transition-all">
<i data-lucide="plug" class="w-3.5 h-3.5 inline mr-1"></i>CHS Backend
</a>
</div>
<div class="flex items-center gap-3">
<div class="threat-indicator flex items-center gap-2 px-3 py-1.5 rounded-lg bg-green-500/10 border border-green-500/20" id="threatLevel">
<div class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
<span class="text-xs font-semibold text-green-400 font-mono" id="threatLevelText">LOW</span>
</div>
<button onclick="toggleMobileMenu()" class="md:hidden p-2 text-slate-400 hover:text-white">
<i data-lucide="menu" class="w-5 h-5"></i>
</button>
<a href="https://github.com/jbsecuritejb-beep/SentinelAI-COMMAND-CENTER" target="_blank" class="hidden sm:flex items-center gap-1.5 text-slate-400 hover:text-white transition-colors">
<i data-lucide="github" class="w-4 h-4"></i>
</a>
</div>
</div>
</div>
<!-- Mobile Menu -->
<div id="mobileMenu" class="hidden md:hidden border-t border-slate-800/60 bg-slate-950/95 backdrop-blur-xl">
<div class="px-4 py-3 space-y-1">
<a href="command-center.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-cyan-400 bg-cyan-500/10">Dashboard</a>
<a href="index.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">GDorks</a>
<a href="threats.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Threats</a>
<a href="network.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Network</a>
<a href="seo-mesh-normal.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Mesh Normal</a>
<a href="seo-mesh-inverse.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Mesh Inversé</a>
<a href="cognitive-inverse-mesh.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Cognitive Inversé</a>
<a href="cognitive-seo-geo-mesh.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">Cognitive SEO/GEO</a>
<a href="seo-inverse.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">SEO Inverse</a>
<a href="chs-backend.html" class="block px-3 py-2 rounded-lg text-sm font-medium text-slate-400 hover:text-white hover:bg-slate-800">CHS Backend</a>
</div>
</div>
</nav>
<!-- Main Command Center Layout -->
<div class="relative z-10 max-w-[1600px] mx-auto px-4 sm:px-6 lg:px-8 py-6">
<!-- System Status Banner -->
<div class="mb-6 flex items-center gap-3 px-4 py-2.5 bg-slate-900/50 border border-slate-800/60 rounded-xl backdrop-blur-sm">
<div class="flex items-center gap-2">
<div class="w-2 h-2 bg-cyan-400 rounded-full animate-pulse"></div>
<span class="text-xs font-mono text-cyan-400">SYSTEM ONLINE</span>
</div>
<div class="h-4 w-px bg-slate-800"></div>
<span class="text-xs font-mono text-slate-500" id="systemTime">--:--:--</span>
<div class="h-4 w-px bg-slate-800"></div>
<span class="text-xs font-mono text-slate-500">UPTIME: <span class="text-slate-300" id="uptimeCounter">0d 0h 0m</span></span>
<div class="h-4 w-px bg-slate-800 hidden sm:block"></div>
<span class="text-xs font-mono text-slate-500 hidden sm:inline">NODES: <span class="text-green-400">12</span>/<span class="text-slate-300">12</span></span>
<div class="ml-auto flex items-center gap-2">
<span class="text-xs font-mono text-slate-500">SCAN QUEUE: <span class="text-amber-400" id="scanQueue">0</span></span>
</div>
</div>
<!-- Stats Row -->
<div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6">
<div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm">
<div class="flex items-center justify-between mb-2">
<span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Threats Detected</span>
<i data-lucide="shield-alert" class="w-4 h-4 text-red-400"></i>
</div>
<div class="text-2xl font-bold text-white font-mono" id="threatCount">0</div>
<div class="flex items-center gap-1 mt-1">
<i data-lucide="trending-up" class="w-3 h-3 text-red-400"></i>
<span class="text-xs text-red-400 font-mono">+12.5%</span>
</div>
</div>
<div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm">
<div class="flex items-center justify-between mb-2">
<span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Scans Completed</span>
<i data-lucide="scan-search" class="w-4 h-4 text-cyan-400"></i>
</div>
<div class="text-2xl font-bold text-white font-mono" id="scanCount">0</div>
<div class="flex items-center gap-1 mt-1">
<i data-lucide="trending-up" class="w-3 h-3 text-green-400"></i>
<span class="text-xs text-green-400 font-mono">+8.3%</span>
</div>
</div>
<div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm">
<div class="flex items-center justify-between mb-2">
<span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Vulnerabilities</span>
<i data-lucide="bug" class="w-4 h-4 text-amber-400"></i>
</div>
<div class="text-2xl font-bold text-white font-mono" id="vulnCount">0</div>
<div class="flex items-center gap-1 mt-1">
<i data-lucide="trending-down" class="w-3 h-3 text-green-400"></i>
<span class="text-xs text-green-400 font-mono">-3.1%</span>
</div>
</div>
<div class="stat-card bg-slate-900/50 border border-slate-800/80 rounded-xl p-4 backdrop-blur-sm">
<div class="flex items-center justify-between mb-2">
<span class="text-xs font-medium text-slate-500 uppercase tracking-wider">Assets Monitored</span>
<i data-lucide="server" class="w-4 h-4 text-purple-400"></i>
</div>
<div class="text-2xl font-bold text-white font-mono" id="assetCount">0</div>
<div class="flex items-center gap-1 mt-1">
<i data-lucide="plus" class="w-3 h-3 text-blue-400"></i>
<span class="text-xs text-blue-400 font-mono">3 new</span>
</div>
</div>
</div>
<!-- Main Grid: Map + Panels -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
<!-- Threat Map Panel (spans 2 cols) -->
<div class="lg:col-span-2 bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden">
<div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60">
<div class="flex items-center gap-2">
<i data-lucide="globe" class="w-4 h-4 text-cyan-400"></i>
<h2 class="text-sm font-semibold text-white">Global Threat Map</h2>
</div>
<div class="flex items-center gap-2">
<span class="text-xs font-mono text-slate-500">LIVE</span>
<div class="w-2 h-2 bg-red-500 rounded-full animate-pulse"></div>
</div>
</div>
<div class="relative p-4" style="min-height: 380px;">
<div id="threatMap" class="w-full rounded-lg overflow-hidden" style="min-height: 350px; height: 350px;"></div>
<!-- Threat dots overlay info -->
<div class="absolute bottom-6 left-6 flex items-center gap-4 text-xs font-mono">
<div class="flex items-center gap-1.5"><div class="w-2 h-2 bg-red-500 rounded-full"></div><span class="text-slate-400">Critical</span></div>
<div class="flex items-center gap-1.5"><div class="w-2 h-2 bg-amber-500 rounded-full"></div><span class="text-slate-400">High</span></div>
<div class="flex items-center gap-1.5"><div class="w-2 h-2 bg-cyan-500 rounded-full"></div><span class="text-slate-400">Medium</span></div>
</div>
</div>
</div>
<!-- Right Panel: Active Alerts -->
<div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden">
<div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60">
<div class="flex items-center gap-2">
<i data-lucide="bell-ring" class="w-4 h-4 text-amber-400"></i>
<h2 class="text-sm font-semibold text-white">Active Alerts</h2>
</div>
<span class="text-xs font-mono text-amber-400" id="alertCount">0</span>
</div>
<div class="overflow-y-auto p-3 space-y-2" style="max-height: 380px;" id="alertsList">
<!-- Alerts will be injected here -->
</div>
</div>
</div>
<!-- Second Row: Activity Log + System Health + Quick Actions -->
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6">
<!-- Activity Log -->
<div class="lg:col-span-2 bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden">
<div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60">
<div class="flex items-center gap-2">
<i data-lucide="terminal" class="w-4 h-4 text-green-400"></i>
<h2 class="text-sm font-semibold text-white">Activity Log</h2>
</div>
<button onclick="clearLogs()" class="text-xs text-slate-500 hover:text-slate-300 transition-colors font-mono">CLEAR</button>
</div>
<div class="overflow-y-auto p-4 font-mono text-xs space-y-1.5" style="max-height: 260px;" id="activityLog">
<!-- Log entries injected here -->
</div>
</div>
<!-- System Health -->
<div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden">
<div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60">
<div class="flex items-center gap-2">
<i data-lucide="activity" class="w-4 h-4 text-green-400"></i>
<h2 class="text-sm font-semibold text-white">System Health</h2>
</div>
</div>
<div class="p-4 space-y-4">
<div>
<div class="flex justify-between text-xs mb-1.5">
<span class="text-slate-400">CPU Usage</span>
<span class="font-mono text-cyan-400" id="cpuVal">0%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-2">
<div class="bg-gradient-to-r from-cyan-500 to-blue-500 h-2 rounded-full transition-all duration-500" id="cpuBar" style="width: 0%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-xs mb-1.5">
<span class="text-slate-400">Memory</span>
<span class="font-mono text-purple-400" id="memVal">0%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-2">
<div class="bg-gradient-to-r from-purple-500 to-pink-500 h-2 rounded-full transition-all duration-500" id="memBar" style="width: 0%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-xs mb-1.5">
<span class="text-slate-400">Network I/O</span>
<span class="font-mono text-green-400" id="netVal">0%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-2">
<div class="bg-gradient-to-r from-green-500 to-emerald-500 h-2 rounded-full transition-all duration-500" id="netBar" style="width: 0%"></div>
</div>
</div>
<div>
<div class="flex justify-between text-xs mb-1.5">
<span class="text-slate-400">Disk Usage</span>
<span class="font-mono text-amber-400" id="diskVal">0%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-2">
<div class="bg-gradient-to-r from-amber-500 to-orange-500 h-2 rounded-full transition-all duration-500" id="diskBar" style="width: 0%"></div>
</div>
</div>
<!-- Mini sparkline chart -->
<div class="pt-2 border-t border-slate-800/60">
<div class="flex items-center justify-between mb-2">
<span class="text-xs text-slate-500">Throughput (last 60s)</span>
</div>
<canvas id="sparkline" class="w-full" height="50"></canvas>
</div>
</div>
</div>
</div>
<!-- Third Row: Quick Scan + Recent Discoveries + Top Targets -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Quick Scan Panel -->
<div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden">
<div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60">
<div class="flex items-center gap-2">
<i data-lucide="zap" class="w-4 h-4 text-cyan-400"></i>
<h2 class="text-sm font-semibold text-white">Quick Scan</h2>
</div>
</div>
<div class="p-4 space-y-3">
<input type="text" id="scanTarget" placeholder="Enter target (domain, IP, CIDR)..."
class="w-full bg-slate-950 border border-slate-700 rounded-lg px-3 py-2.5 text-sm text-slate-200 placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-cyan-500/30 focus:border-cyan-500/50 font-mono transition-all">
<div class="grid grid-cols-2 gap-2">
<button onclick="startScan('recon')" class="scan-btn flex items-center justify-center gap-1.5 bg-cyan-600/10 hover:bg-cyan-600/20 border border-cyan-500/20 hover:border-cyan-500/40 rounded-lg py-2 text-xs font-semibold text-cyan-400 transition-all">
<i data-lucide="eye" class="w-3.5 h-3.5"></i>Recon
</button>
<button onclick="startScan('vuln')" class="scan-btn flex items-center justify-center gap-1.5 bg-red-600/10 hover:bg-red-600/20 border border-red-500/20 hover:border-red-500/40 rounded-lg py-2 text-xs font-semibold text-red-400 transition-all">
<i data-lucide="bug" class="w-3.5 h-3.5"></i>Vuln Scan
</button>
<button onclick="startScan('dork')" class="scan-btn flex items-center justify-center gap-1.5 bg-amber-600/10 hover:bg-amber-600/20 border border-amber-500/20 hover:border-amber-500/40 rounded-lg py-2 text-xs font-semibold text-amber-400 transition-all">
<i data-lucide="search" class="w-3.5 h-3.5"></i>Dork Scan
</button>
<button onclick="startScan('full')" class="scan-btn flex items-center justify-center gap-1.5 bg-purple-600/10 hover:bg-purple-600/20 border border-purple-500/20 hover:border-purple-500/40 rounded-lg py-2 text-xs font-semibold text-purple-400 transition-all">
<i data-lucide="radar" class="w-3.5 h-3.5"></i>Full Audit
</button>
</div>
<!-- Scan Progress -->
<div id="scanProgress" class="hidden">
<div class="flex items-center justify-between text-xs mb-1.5">
<span class="text-slate-400 font-mono" id="scanStage">Initializing...</span>
<span class="text-cyan-400 font-mono" id="scanPercent">0%</span>
</div>
<div class="w-full bg-slate-800 rounded-full h-1.5">
<div class="bg-gradient-to-r from-cyan-500 to-blue-500 h-1.5 rounded-full transition-all duration-300" id="scanBar" style="width: 0%"></div>
</div>
</div>
</div>
</div>
<!-- Recent Discoveries -->
<div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden">
<div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60">
<div class="flex items-center gap-2">
<i data-lucide="compass" class="w-4 h-4 text-amber-400"></i>
<h2 class="text-sm font-semibold text-white">Recent Discoveries</h2>
</div>
<a href="index.html" class="text-xs text-cyan-400 hover:text-cyan-300 transition-colors font-mono">VIEW ALL →</a>
</div>
<div class="overflow-y-auto p-3 space-y-2" style="max-height: 280px;" id="discoveriesList">
<!-- Discoveries injected here -->
</div>
</div>
<!-- Top Targeted Assets -->
<div class="bg-slate-900/50 border border-slate-800/80 rounded-xl backdrop-blur-sm overflow-hidden">
<div class="flex items-center justify-between px-5 py-3 border-b border-slate-800/60">
<div class="flex items-center gap-2">
<i data-lucide="crosshair" class="w-4 h-4 text-red-400"></i>
<h2 class="text-sm font-semibold text-white">Top Targeted Assets</h2>
</div>
</div>
<div class="overflow-y-auto p-3 space-y-2" style="max-height: 280px;" id="topTargetsList">
<!-- Targets injected here -->
</div>
</div>
</div>
</div>
<!-- Toast Notification -->
<div id="ccToast" class="fixed bottom-6 right-6 z-50 transform translate-y-20 opacity-0 transition-all duration-300">
<div class="bg-slate-900 border border-slate-700 rounded-xl px-4 py-3 shadow-2xl flex items-center gap-3">
<div class="w-8 h-8 bg-cyan-500/20 rounded-lg flex items-center justify-center">
<i data-lucide="check" class="w-4 h-4 text-cyan-400"></i>
</div>
<span class="text-sm font-medium text-slate-200" id="ccToastMsg">Notification</span>
</div>
</div>
<script src="https://unpkg.com/lucide@latest"></script>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="api-service.js"></script>
<script src="command-center.js"></script>
</body>
</html>