find-com / index.html
Atarioch's picture
Create a hacking website - Initial Deployment
e98e65c verified
<!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">
<!-- Matrix effect background -->
<canvas id="matrix" class="matrix-effect"></canvas>
<!-- Scanline overlay -->
<div class="scanline"></div>
<!-- Header -->
<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 terminal -->
<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>
<!-- Command history will be added here -->
</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 -->
<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>
// Matrix effect
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);
// Terminal functionality
const terminal = document.getElementById('terminal');
const commandInput = document.getElementById('command-input');
const datetimeElement = document.getElementById('datetime');
// Update datetime
function updateDateTime() {
const now = new Date();
datetimeElement.textContent = now.toLocaleString();
}
setInterval(updateDateTime, 1000);
updateDateTime();
// Available commands
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>";
// Fake IPs
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>";
// Fake progress bar
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;
}
}
};
// Command history
let commandHistory = JSON.parse(localStorage.getItem('commandHistory') || '[]');
let historyIndex = commandHistory.length;
// Handle command input
commandInput.addEventListener('keydown', (e) => {
if (e.key === 'Enter') {
const command = commandInput.value.trim();
if (command) {
// Add to history
commandHistory.push(command);
localStorage.setItem('commandHistory', JSON.stringify(commandHistory));
historyIndex = commandHistory.length;
// Display command
const commandElement = document.createElement('div');
commandElement.className = 'mb-2';
commandElement.innerHTML = `<p class='text-green-500'>> ${command}</p>`;
terminal.appendChild(commandElement);
// Process command
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);
}
// Clear input
commandInput.value = '';
// Scroll to bottom
terminal.scrollTop = terminal.scrollHeight;
}
} else if (e.key === 'ArrowUp') {
// Navigate command history
if (historyIndex > 0) {
historyIndex--;
commandInput.value = commandHistory[historyIndex];
}
} else if (e.key === 'ArrowDown') {
// Navigate command history
if (historyIndex < commandHistory.length - 1) {
historyIndex++;
commandInput.value = commandHistory[historyIndex];
} else {
historyIndex = commandHistory.length;
commandInput.value = '';
}
}
});
// Focus input when clicking anywhere
document.addEventListener('click', () => {
commandInput.focus();
});
// Initial help display
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>