| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>CyberTerminal v2.4.7</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <style> |
| @import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro:wght@300;400;600&display=swap'); |
| |
| body { |
| font-family: 'Source Code Pro', monospace; |
| background-color: #0a0a0a; |
| color: #00ff41; |
| overflow-x: hidden; |
| } |
| |
| .cursor-blink { |
| animation: blink 1s step-end infinite; |
| } |
| |
| @keyframes blink { |
| from, to { opacity: 1; } |
| 50% { opacity: 0; } |
| } |
| |
| .scanline { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background: linear-gradient( |
| to bottom, |
| rgba(0, 255, 65, 0.1) 0%, |
| rgba(0, 255, 65, 0) 10% |
| ); |
| background-size: 100% 0.5rem; |
| pointer-events: none; |
| z-index: 10; |
| } |
| |
| .glow { |
| text-shadow: 0 0 5px #00ff41; |
| } |
| |
| .matrix-effect { |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| z-index: -1; |
| opacity: 0.1; |
| } |
| |
| .command-output { |
| max-height: 0; |
| overflow: hidden; |
| transition: max-height 0.5s ease-out; |
| } |
| |
| .command-output.show { |
| max-height: 500px; |
| } |
| |
| .progress-bar { |
| height: 2px; |
| background-color: #00ff41; |
| transition: width 0.3s ease; |
| } |
| </style> |
| </head> |
| <body class="min-h-screen flex flex-col"> |
| |
| <canvas id="matrix" class="matrix-effect"></canvas> |
| |
| |
| <div class="scanline"></div> |
| |
| |
| <header class="border-b border-green-500 p-4"> |
| <div class="container mx-auto flex justify-between items-center"> |
| <div class="flex items-center"> |
| <i class="fas fa-terminal mr-2 text-green-500"></i> |
| <h1 class="text-xl font-bold glow">CYBERTERMINAL v2.4.7</h1> |
| </div> |
| <div class="text-sm"> |
| <span id="datetime" class="mr-4"></span> |
| <span class="text-green-300">CONNECTION: SECURE</span> |
| </div> |
| </div> |
| </header> |
| |
| |
| <main class="flex-grow container mx-auto p-4 overflow-auto"> |
| <div id="terminal" class="mb-4"> |
| <div class="mb-4"> |
| <p class="text-green-400">Initializing secure connection...</p> |
| <p class="text-green-400">Establishing encrypted tunnel...</p> |
| <p class="text-green-500">> Connection established. Welcome back, USER.</p> |
| <p class="text-green-500">> Type 'help' for available commands.</p> |
| </div> |
| |
| |
| </div> |
| |
| <div class="flex items-center"> |
| <span class="text-green-500 mr-2">></span> |
| <input id="command-input" type="text" class="bg-transparent border-none outline-none flex-grow text-green-500" autofocus> |
| <span class="cursor-blink ml-1">|</span> |
| </div> |
| </main> |
| |
| |
| <footer class="border-t border-green-500 p-2 text-xs text-center text-green-400"> |
| <p>WARNING: Unauthorized access to this system is prohibited. All activities are logged.</p> |
| </footer> |
| |
| <script> |
| |
| const canvas = document.getElementById('matrix'); |
| const ctx = canvas.getContext('2d'); |
| |
| canvas.width = window.innerWidth; |
| canvas.height = window.innerHeight; |
| |
| const katakana = 'アァカサタナハマヤャラワガザダバパイィキシチニヒミリヰギジヂビピウゥクスツヌフムユュルグズブヅプエェケセテネヘメレヱゲゼデベペオォコソトノホモヨョロヲゴゾドボポヴッン'; |
| const latin = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; |
| const nums = '0123456789'; |
| |
| const alphabet = katakana + latin + nums; |
| |
| const fontSize = 16; |
| const columns = canvas.width / fontSize; |
| |
| const rainDrops = []; |
| |
| for (let x = 0; x < columns; x++) { |
| rainDrops[x] = 1; |
| } |
| |
| const draw = () => { |
| ctx.fillStyle = 'rgba(0, 0, 0, 0.05)'; |
| ctx.fillRect(0, 0, canvas.width, canvas.height); |
| |
| ctx.fillStyle = '#00ff41'; |
| ctx.font = fontSize + 'px monospace'; |
| |
| for (let i = 0; i < rainDrops.length; i++) { |
| const text = alphabet.charAt(Math.floor(Math.random() * alphabet.length)); |
| ctx.fillText(text, i * fontSize, rainDrops[i] * fontSize); |
| |
| if (rainDrops[i] * fontSize > canvas.height && Math.random() > 0.975) { |
| rainDrops[i] = 0; |
| } |
| rainDrops[i]++; |
| } |
| }; |
| |
| setInterval(draw, 30); |
| |
| |
| const terminal = document.getElementById('terminal'); |
| const commandInput = document.getElementById('command-input'); |
| const datetimeElement = document.getElementById('datetime'); |
| |
| |
| function updateDateTime() { |
| const now = new Date(); |
| datetimeElement.textContent = now.toLocaleString(); |
| } |
| |
| setInterval(updateDateTime, 1000); |
| updateDateTime(); |
| |
| |
| const commands = { |
| help: { |
| description: "Display available commands", |
| execute: () => { |
| let output = "<div class='mb-4'>"; |
| output += "<p class='text-green-400'>Available commands:</p>"; |
| for (const cmd in commands) { |
| output += `<p class='ml-4'>${cmd.padEnd(12)} - ${commands[cmd].description}</p>`; |
| } |
| output += "</div>"; |
| return output; |
| } |
| }, |
| clear: { |
| description: "Clear the terminal", |
| execute: () => { |
| terminal.innerHTML = ''; |
| return ''; |
| } |
| }, |
| scan: { |
| description: "Scan a target network", |
| execute: () => { |
| let output = "<div class='mb-4'>"; |
| output += "<p class='text-green-400'>Initiating network scan...</p>"; |
| |
| |
| const ips = [ |
| "192.168.1.1 - ROUTER - SECURITY: MEDIUM", |
| "192.168.1.2 - WORKSTATION - SECURITY: LOW", |
| "192.168.1.3 - NAS - SECURITY: HIGH", |
| "192.168.1.4 - PRINTER - SECURITY: NONE", |
| "192.168.1.5 - SMARTHOME - SECURITY: WEAK" |
| ]; |
| |
| ips.forEach(ip => { |
| output += `<p class='ml-4'>${ip}</p>`; |
| }); |
| |
| output += "<p class='text-green-500 mt-2'>Scan complete. 5 hosts discovered.</p>"; |
| output += "</div>"; |
| return output; |
| } |
| }, |
| exploit: { |
| description: "Attempt to exploit a vulnerability", |
| execute: () => { |
| let output = "<div class='mb-4'>"; |
| output += "<p class='text-green-400'>Searching for vulnerabilities...</p>"; |
| |
| |
| output += `<div class='w-full bg-gray-800 h-2 my-2'> |
| <div class='progress-bar h-full' style='width: 0%'></div> |
| </div>`; |
| |
| setTimeout(() => { |
| const progressBar = document.querySelector('.progress-bar'); |
| let progress = 0; |
| const interval = setInterval(() => { |
| progress += Math.random() * 10; |
| if (progress >= 100) { |
| progress = 100; |
| clearInterval(interval); |
| |
| setTimeout(() => { |
| const result = Math.random() > 0.3 ? |
| "<p class='text-green-500'>Exploit successful! Gained root access.</p>" : |
| "<p class='text-red-500'>Exploit failed. Target patched.</p>"; |
| |
| const lastDiv = document.querySelector('#terminal > div:last-child'); |
| lastDiv.innerHTML += result; |
| }, 300); |
| } |
| progressBar.style.width = `${progress}%`; |
| }, 200); |
| }, 100); |
| |
| output += "</div>"; |
| return output; |
| } |
| }, |
| decrypt: { |
| description: "Attempt to decrypt data", |
| execute: () => { |
| let output = "<div class='mb-4'>"; |
| output += "<p class='text-green-400'>Initializing decryption sequence...</p>"; |
| |
| const chars = "0123456789ABCDEF"; |
| let encrypted = ""; |
| for (let i = 0; i < 32; i++) { |
| encrypted += chars.charAt(Math.floor(Math.random() * chars.length)); |
| } |
| |
| output += `<p class='ml-4'>Encrypted data: ${encrypted}</p>`; |
| output += "<p class='text-yellow-400'>Brute forcing encryption key...</p>"; |
| |
| setTimeout(() => { |
| const decrypted = "ACCESS GRANTED: TOP SECRET DATA"; |
| const lastDiv = document.querySelector('#terminal > div:last-child'); |
| lastDiv.innerHTML += `<p class='text-green-500'>Decryption successful: ${decrypted}</p>`; |
| }, 2000); |
| |
| output += "</div>"; |
| return output; |
| } |
| }, |
| ddos: { |
| description: "Launch a DDoS attack", |
| execute: () => { |
| let output = "<div class='mb-4'>"; |
| output += "<p class='text-green-400'>Preparing botnet...</p>"; |
| |
| const bots = Math.floor(Math.random() * 5000) + 1000; |
| output += `<p class='ml-4'>${bots} bots ready</p>`; |
| output += "<p class='text-yellow-400'>Launching attack...</p>"; |
| |
| setTimeout(() => { |
| const success = Math.random() > 0.2; |
| const lastDiv = document.querySelector('#terminal > div:last-child'); |
| if (success) { |
| lastDiv.innerHTML += `<p class='text-green-500'>Target overwhelmed! Service disruption achieved.</p>`; |
| } else { |
| lastDiv.innerHTML += `<p class='text-red-500'>Attack mitigated. Target defenses too strong.</p>`; |
| } |
| }, 3000); |
| |
| output += "</div>"; |
| return output; |
| } |
| }, |
| whoami: { |
| description: "Display user information", |
| execute: () => { |
| return `<div class='mb-4'> |
| <p class='text-green-400'>User: ANONYMOUS</p> |
| <p class='ml-4'>Access level: ROOT</p> |
| <p class='ml-4'>Last login: ${new Date().toLocaleString()}</p> |
| <p class='ml-4'>IP: ${Math.floor(Math.random() * 255)}.${Math.floor(Math.random() * 255)}.${Math.floor(Math.random() * 255)}.${Math.floor(Math.random() * 255)}</p> |
| </div>`; |
| } |
| }, |
| history: { |
| description: "Show command history", |
| execute: () => { |
| const history = JSON.parse(localStorage.getItem('commandHistory') || '[]'); |
| let output = "<div class='mb-4'>"; |
| output += "<p class='text-green-400'>Command history:</p>"; |
| if (history.length === 0) { |
| output += "<p class='ml-4'>No history found</p>"; |
| } else { |
| history.forEach(cmd => { |
| output += `<p class='ml-4'>${cmd}</p>`; |
| }); |
| } |
| output += "</div>"; |
| return output; |
| } |
| } |
| }; |
| |
| |
| let commandHistory = JSON.parse(localStorage.getItem('commandHistory') || '[]'); |
| let historyIndex = commandHistory.length; |
| |
| |
| commandInput.addEventListener('keydown', (e) => { |
| if (e.key === 'Enter') { |
| const command = commandInput.value.trim(); |
| if (command) { |
| |
| commandHistory.push(command); |
| localStorage.setItem('commandHistory', JSON.stringify(commandHistory)); |
| historyIndex = commandHistory.length; |
| |
| |
| const commandElement = document.createElement('div'); |
| commandElement.className = 'mb-2'; |
| commandElement.innerHTML = `<p class='text-green-500'>> ${command}</p>`; |
| terminal.appendChild(commandElement); |
| |
| |
| const cmd = command.split(' ')[0].toLowerCase(); |
| if (commands[cmd]) { |
| const output = commands[cmd].execute(); |
| if (output) { |
| const outputElement = document.createElement('div'); |
| outputElement.className = 'command-output'; |
| outputElement.innerHTML = output; |
| terminal.appendChild(outputElement); |
| |
| setTimeout(() => { |
| outputElement.classList.add('show'); |
| }, 10); |
| } |
| } else { |
| const outputElement = document.createElement('div'); |
| outputElement.className = 'command-output show'; |
| outputElement.innerHTML = `<p class='text-red-500'>Command not found: ${cmd}. Type 'help' for available commands.</p>`; |
| terminal.appendChild(outputElement); |
| } |
| |
| |
| commandInput.value = ''; |
| |
| |
| terminal.scrollTop = terminal.scrollHeight; |
| } |
| } else if (e.key === 'ArrowUp') { |
| |
| if (historyIndex > 0) { |
| historyIndex--; |
| commandInput.value = commandHistory[historyIndex]; |
| } |
| } else if (e.key === 'ArrowDown') { |
| |
| if (historyIndex < commandHistory.length - 1) { |
| historyIndex++; |
| commandInput.value = commandHistory[historyIndex]; |
| } else { |
| historyIndex = commandHistory.length; |
| commandInput.value = ''; |
| } |
| } |
| }); |
| |
| |
| document.addEventListener('click', () => { |
| commandInput.focus(); |
| }); |
| |
| |
| setTimeout(() => { |
| const outputElement = document.createElement('div'); |
| outputElement.className = 'command-output show'; |
| outputElement.innerHTML = commands.help.execute(); |
| terminal.appendChild(outputElement); |
| }, 1000); |
| </script> |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Atarioch/find-com" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |