retro-sandbox / index.html
RB17B's picture
Add 2 files
d0cf747 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CYBERNET MALWARE SANDBOX v1.33.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=Share+Tech+Mono&display=swap');
body {
font-family: 'Share Tech Mono', monospace;
background-color: #000;
color: #0f0;
overflow: hidden;
}
.crt-effect {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
background-size: 100% 2px, 3px 100%;
pointer-events: none;
z-index: 100;
}
.scanline {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 10px;
background: rgba(0, 255, 0, 0.1);
animation: scan 8s linear infinite;
z-index: 99;
}
@keyframes scan {
0% { top: 0; }
100% { top: 100%; }
}
.blink {
animation: blink 1s step-end infinite;
}
@keyframes blink {
from, to { opacity: 1; }
50% { opacity: 0; }
}
.glow {
text-shadow: 0 0 5px #0f0;
}
.terminal-border {
border: 1px solid #0f0;
box-shadow: 0 0 10px #0f0, inset 0 0 10px #0f0;
}
.progress-bar {
background: linear-gradient(to right, #0f0 0%, #0f0 var(--progress), transparent var(--progress), transparent 100%);
}
.modal-overlay {
background-color: rgba(0, 0, 0, 0.8);
}
.modal-content {
border: 1px solid #f00;
box-shadow: 0 0 15px #f00;
}
</style>
</head>
<body class="bg-black text-green-500 h-screen flex flex-col">
<!-- CRT Effects -->
<div class="crt-effect"></div>
<div class="scanline"></div>
<!-- Header -->
<header class="border-b border-green-500 p-2 flex justify-between items-center">
<div class="flex items-center">
<i class="fas fa-skull-crossbones text-red-500 mr-2"></i>
<span class="text-xl glow">CYBERNET MALWARE SANDBOX v1.33.7</span>
</div>
<div class="text-xs">
<span class="mr-4">USER: <span class="text-yellow-300">ROOT</span></span>
<span>ACCESS: <span class="text-red-500">LEVEL 5</span></span>
</div>
</header>
<!-- Main Content -->
<main class="flex-1 overflow-hidden flex">
<!-- Sidebar -->
<aside class="w-48 border-r border-green-500 p-2 flex flex-col">
<div class="mb-4">
<div class="text-sm mb-1 glow">SYSTEM STATUS</div>
<div class="text-xs mb-1">CPU: <span class="text-yellow-300">87%</span></div>
<div class="text-xs mb-1">MEM: <span class="text-yellow-300">64%</span></div>
<div class="text-xs mb-1">NET: <span class="text-yellow-300">ACTIVE</span></div>
</div>
<div class="mb-4">
<div class="text-sm mb-1 glow">QUICK COMMANDS</div>
<button onclick="executeCommand('scan')" class="w-full text-left text-xs p-1 hover:bg-green-900 hover:text-white mb-1">
<i class="fas fa-search mr-1"></i> SCAN FILE
</button>
<button onclick="executeCommand('analyze')" class="w-full text-left text-xs p-1 hover:bg-green-900 hover:text-white mb-1">
<i class="fas fa-microscope mr-1"></i> ANALYZE
</button>
<button onclick="executeCommand('history')" class="w-full text-left text-xs p-1 hover:bg-green-900 hover:text-white mb-1">
<i class="fas fa-history mr-1"></i> HISTORY
</button>
<button onclick="executeCommand('clear')" class="w-full text-left text-xs p-1 hover:bg-green-900 hover:text-white">
<i class="fas fa-broom mr-1"></i> CLEAR
</button>
</div>
<div class="mb-4">
<div class="text-sm mb-1 glow">VIRUS DATABASE</div>
<div class="text-xs mb-1">SIGNATURES: <span class="text-yellow-300">1,387,452</span></div>
<div class="text-xs mb-1">LAST UPDATE: <span class="text-yellow-300">05:47:23</span></div>
</div>
<div class="mt-auto text-xs text-gray-500">
<div>CONNECTION SECURE</div>
<div>ENCRYPTION: AES-256</div>
</div>
</aside>
<!-- Terminal Area -->
<div class="flex-1 flex flex-col p-2 overflow-hidden">
<div id="terminal-output" class="flex-1 overflow-y-auto text-xs mb-2 font-mono leading-relaxed">
<div class="mb-2">CYBERNET MALWARE ANALYSIS SYSTEM - BUILD 1337</div>
<div class="mb-2">COPYRIGHT (C) 1997 CYBERNET SECURITY</div>
<div class="mb-2">UNAUTHORIZED ACCESS PROHIBITED</div>
<div class="mb-4">----------------------------------------</div>
<div class="mb-2">SYSTEM INITIALIZATION COMPLETE</div>
<div class="mb-2">LOADING VIRUS DATABASE... <span class="text-yellow-300">DONE</span></div>
<div class="mb-2">ESTABLISHING SECURE CONNECTION... <span class="text-yellow-300">DONE</span></div>
<div class="mb-4">----------------------------------------</div>
<div class="mb-2">TYPE <span class="text-yellow-300">HELP</span> FOR AVAILABLE COMMANDS</div>
<div class="mb-4">----------------------------------------</div>
</div>
<div class="flex items-center border-t border-green-500 pt-2">
<span class="mr-2">root@cybernet:~$</span>
<input id="command-input" type="text" class="flex-1 bg-transparent border-none outline-none font-mono" autofocus>
<span class="blink ml-1">_</span>
</div>
</div>
<!-- Right Panel -->
<aside class="w-64 border-l border-green-500 p-2">
<div class="text-sm mb-2 glow">ACTIVE PROCESSES</div>
<div class="text-xs mb-4">
<div class="flex justify-between mb-1">
<span>MEMSCAN.EXE</span>
<span class="text-yellow-300">32%</span>
</div>
<div class="h-2 bg-gray-800 mb-2 progress-bar" style="--progress: 32%"></div>
<div class="flex justify-between mb-1">
<span>NETMON.EXE</span>
<span class="text-yellow-300">18%</span>
</div>
<div class="h-2 bg-gray-800 mb-2 progress-bar" style="--progress: 18%"></div>
<div class="flex justify-between mb-1">
<span>CRYPTO.EXE</span>
<span class="text-yellow-300">12%</span>
</div>
<div class="h-2 bg-gray-800 mb-2 progress-bar" style="--progress: 12%"></div>
</div>
<div class="text-sm mb-2 glow">RECENT THREATS</div>
<div class="text-xs mb-2">
<div class="flex items-center mb-1">
<i class="fas fa-virus text-red-500 mr-2"></i>
<span>W32.Nimda.A</span>
</div>
<div class="flex items-center mb-1">
<i class="fas fa-virus text-red-500 mr-2"></i>
<span>Trojan.Zeus</span>
</div>
<div class="flex items-center mb-1">
<i class="fas fa-virus text-red-500 mr-2"></i>
<span>Backdoor.Netbus</span>
</div>
</div>
<div class="text-sm mb-2 glow">SYSTEM ALERTS</div>
<div class="text-xs">
<div class="flex items-center mb-1 text-yellow-300">
<i class="fas fa-exclamation-triangle mr-2"></i>
<span>MEMORY LEAK DETECTED</span>
</div>
<div class="flex items-center mb-1 text-green-300">
<i class="fas fa-check-circle mr-2"></i>
<span>FIREWALL ACTIVE</span>
</div>
</div>
</aside>
</main>
<!-- Footer -->
<footer class="border-t border-green-500 p-1 text-xs flex justify-between">
<div>
<span class="mr-4">[F1] HELP</span>
<span class="mr-4">[F2] SCAN</span>
<span class="mr-4">[F3] HISTORY</span>
<span>[F12] EMERGENCY SHUTDOWN</span>
</div>
<div>
<span>05:47:23 07-12-1997</span>
</div>
</footer>
<!-- Modal for file upload -->
<div id="upload-modal" class="fixed inset-0 flex items-center justify-center modal-overlay hidden z-50">
<div class="bg-black border border-red-500 p-4 w-96 modal-content">
<div class="flex justify-between items-center mb-4">
<h3 class="text-lg text-red-500 glow">UPLOAD MALWARE SAMPLE</h3>
<button onclick="closeModal()" class="text-red-500 hover:text-white">
<i class="fas fa-times"></i>
</button>
</div>
<div class="mb-4">
<div class="border border-green-500 p-2 mb-2 text-center">
<label for="file-upload" class="cursor-pointer">
<i class="fas fa-file-upload text-2xl mb-2"></i>
<div>SELECT FILE TO UPLOAD</div>
<input id="file-upload" type="file" class="hidden">
</label>
</div>
<div class="text-xs text-gray-500 mb-2">
MAX SIZE: 10MB | ALLOWED TYPES: EXE, DLL, BAT, SCR
</div>
</div>
<div class="flex justify-between">
<button onclick="closeModal()" class="px-4 py-1 border border-green-500 hover:bg-green-900">
CANCEL
</button>
<button onclick="startAnalysis()" class="px-4 py-1 bg-red-900 border border-red-500 hover:bg-red-800">
ANALYZE
</button>
</div>
</div>
</div>
<script>
// Terminal functionality
const terminalOutput = document.getElementById('terminal-output');
const commandInput = document.getElementById('command-input');
// Command history
let commandHistory = [];
let historyIndex = -1;
// Focus the input field on page load
commandInput.focus();
// Handle command input
commandInput.addEventListener('keydown', function(e) {
if (e.key === 'Enter') {
const command = commandInput.value.trim();
if (command) {
// Add to history
commandHistory.push(command);
historyIndex = commandHistory.length;
// Process command
executeCommand(command);
// Clear input
commandInput.value = '';
}
} else if (e.key === 'ArrowUp') {
// Navigate command history up
if (commandHistory.length > 0 && historyIndex > 0) {
historyIndex--;
commandInput.value = commandHistory[historyIndex];
}
} else if (e.key === 'ArrowDown') {
// Navigate command history down
if (historyIndex < commandHistory.length - 1) {
historyIndex++;
commandInput.value = commandHistory[historyIndex];
} else {
historyIndex = commandHistory.length;
commandInput.value = '';
}
}
});
// Execute commands
function executeCommand(command) {
// Add command to output
addTerminalLine(`root@cybernet:~$ ${command}`);
// Process command
const cmd = command.toLowerCase().split(' ')[0];
const args = command.split(' ').slice(1).join(' ');
switch(cmd) {
case 'help':
showHelp();
break;
case 'scan':
openUploadModal();
break;
case 'analyze':
if (args) {
analyzeFile(args);
} else {
addTerminalLine('ERROR: No file specified. Usage: analyze [filename]');
}
break;
case 'history':
showHistory();
break;
case 'clear':
clearTerminal();
break;
case 'exit':
addTerminalLine('SYSTEM SHUTDOWN INITIATED...');
setTimeout(() => {
document.body.innerHTML = '<div class="h-screen flex items-center justify-center bg-black text-red-500 text-xl">SYSTEM OFFLINE</div>';
}, 1000);
break;
default:
addTerminalLine(`Command not found: ${cmd}. Type 'help' for available commands.`);
}
}
// Terminal helper functions
function addTerminalLine(text) {
const line = document.createElement('div');
line.className = 'mb-2';
line.textContent = text;
terminalOutput.appendChild(line);
terminalOutput.scrollTop = terminalOutput.scrollHeight;
}
function showHelp() {
addTerminalLine('AVAILABLE COMMANDS:');
addTerminalLine('----------------------------');
addTerminalLine('help - Show this help message');
addTerminalLine('scan - Scan a file for malware');
addTerminalLine('analyze [file] - Analyze specified file');
addTerminalLine('history - Show command history');
addTerminalLine('clear - Clear terminal');
addTerminalLine('exit - Shutdown system');
addTerminalLine('----------------------------');
}
function showHistory() {
if (commandHistory.length === 0) {
addTerminalLine('No command history available.');
return;
}
addTerminalLine('COMMAND HISTORY:');
addTerminalLine('----------------------------');
commandHistory.forEach((cmd, index) => {
addTerminalLine(`${index + 1}. ${cmd}`);
});
addTerminalLine('----------------------------');
}
function clearTerminal() {
terminalOutput.innerHTML = '';
}
// Modal functions
function openUploadModal() {
document.getElementById('upload-modal').classList.remove('hidden');
}
function closeModal() {
document.getElementById('upload-modal').classList.add('hidden');
}
function startAnalysis() {
const fileInput = document.getElementById('file-upload');
if (fileInput.files.length > 0) {
const fileName = fileInput.files[0].name;
closeModal();
addTerminalLine(`Starting analysis of: ${fileName}`);
simulateAnalysis(fileName);
} else {
alert('Please select a file first!');
}
}
// Simulation functions
function simulateAnalysis(filename) {
addTerminalLine(`ANALYZING: ${filename}`);
// Simulate scanning process
const steps = [
{text: 'Calculating checksum...', delay: 800},
{text: 'Scanning for known signatures...', delay: 1200},
{text: 'Analyzing file structure...', delay: 1500},
{text: 'Monitoring system calls...', delay: 2000},
{text: 'Behavior analysis in progress...', delay: 2500},
];
let totalDelay = 0;
steps.forEach(step => {
setTimeout(() => {
addTerminalLine(step.text);
// Last step - show results
if (step === steps[steps.length - 1]) {
setTimeout(() => {
showAnalysisResults(filename);
}, 1000);
}
}, totalDelay);
totalDelay += step.delay;
});
}
function showAnalysisResults(filename) {
// Randomly determine if file is malicious (70% chance)
const isMalicious = Math.random() < 0.7;
const threatName = isMalicious ?
['W32.Nimda.A', 'Trojan.Zeus', 'Backdoor.Netbus', 'Worm.CodeRed'][Math.floor(Math.random() * 4)] :
'None';
addTerminalLine('ANALYSIS COMPLETE');
addTerminalLine('----------------------------');
addTerminalLine(`FILE: ${filename}`);
addTerminalLine(`STATUS: ${isMalicious ? 'MALICIOUS' : 'CLEAN'}`);
if (isMalicious) {
addTerminalLine(`THREAT: ${threatName}`);
addTerminalLine('SEVERITY: ' + ['LOW', 'MEDIUM', 'HIGH'][Math.floor(Math.random() * 3)]);
addTerminalLine('ACTION: File quarantined');
} else {
addTerminalLine('No malicious code detected.');
}
addTerminalLine('----------------------------');
}
function analyzeFile(filename) {
addTerminalLine(`Starting analysis of: ${filename}`);
simulateAnalysis(filename);
}
// Add some initial system messages
setTimeout(() => {
addTerminalLine('SYSTEM ALERT: New virus signatures available (12 new entries)');
}, 5000);
setTimeout(() => {
addTerminalLine('SYSTEM NOTICE: Memory optimization completed');
}, 10000);
</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=RB17B/retro-sandbox" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>