diff options
| author | Gab <24553253+gabrix73@users.noreply.github.com> | 2025-06-13 13:53:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-13 13:53:04 +0200 |
| commit | a9ec466285711c4ed0d8982d79f02ec33f5166a9 (patch) | |
| tree | 3824fd9a57ff7035c4e9808c5eb1a8b55422fa59 | |
| parent | d2b806cf047a0063dd7fc3c9896afb08ebf63e10 (diff) | |
| download | nofuture-go-memguard-a9ec466285711c4ed0d8982d79f02ec33f5166a9.tar.gz nofuture-go-memguard-a9ec466285711c4ed0d8982d79f02ec33f5166a9.tar.xz nofuture-go-memguard-a9ec466285711c4ed0d8982d79f02ec33f5166a9.zip | |
Create challange.htm
| -rw-r--r-- | challange.htm | 521 |
1 files changed, 521 insertions, 0 deletions
diff --git a/challange.htm b/challange.htm new file mode 100644 index 0000000..2c1354e --- /dev/null +++ b/challange.htm @@ -0,0 +1,521 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>NoFuture Security Challenge</title> + + <!-- JSDelivr Font Awesome alternative --> + <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/css/all.min.css"> + + <style> + body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); + color: #ffffff; + margin: 0; + padding: 0; + min-height: 100vh; + } + + .header { + text-align: center; + padding: 2rem 1rem 1rem; + background: rgba(0, 0, 0, 0.3); + backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + } + + .header h1 { + font-size: 2.5rem; + margin: 0; + background: linear-gradient(45deg, #ff6b6b, #4ecdc4); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + + .header p { + margin: 0.5rem 0 0; + opacity: 0.8; + font-size: 1.1rem; + } + + .back-btn { + position: absolute; + top: 1rem; + left: 1rem; + background: rgba(255, 255, 255, 0.1); + color: white; + text-decoration: none; + padding: 0.5rem 1rem; + border-radius: 8px; + border: 1px solid rgba(255, 255, 255, 0.2); + transition: all 0.3s ease; + } + + .back-btn:hover { + background: rgba(255, 255, 255, 0.2); + transform: translateY(-1px); + } + + .challenge-container { + max-width: 1200px; + margin: 2rem auto; + padding: 0 1rem; + } + + .challenge-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 2rem; + margin-bottom: 2rem; + } + + .challenge-panel { + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: 2rem; + border: 1px solid rgba(255, 255, 255, 0.2); + transition: transform 0.3s ease; + } + + .challenge-panel:hover { + transform: translateY(-5px); + } + + .panel-title { + font-size: 1.3rem; + font-weight: 600; + margin-bottom: 1rem; + color: #4CAF50; + display: flex; + align-items: center; + gap: 0.5rem; + } + + .status-indicator { + width: 12px; + height: 12px; + border-radius: 50%; + background: #4CAF50; + animation: pulse 2s infinite; + } + + @keyframes pulse { + 0% { opacity: 1; } + 50% { opacity: 0.5; } + 100% { opacity: 1; } + } + + .metric { + display: flex; + justify-content: space-between; + margin: 0.5rem 0; + padding: 0.5rem; + background: rgba(255, 255, 255, 0.05); + border-radius: 5px; + } + + .metric-label { + opacity: 0.8; + } + + .metric-value { + font-weight: 600; + color: #4CAF50; + } + + .metric-value.blocked { + color: #ff4444; + } + + .challenge-section { + background: rgba(255, 100, 100, 0.1); + border: 2px solid rgba(255, 100, 100, 0.3); + border-radius: 15px; + padding: 2rem; + margin: 2rem 0; + } + + .challenge-title { + font-size: 1.5rem; + color: #ff6b6b; + margin-bottom: 1.5rem; + text-align: center; + } + + .challenge-buttons { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 1rem; + margin: 1.5rem 0; + } + + .challenge-btn { + background: linear-gradient(45deg, #ff6b6b, #ee5a52); + border: none; + padding: 1rem 1.5rem; + border-radius: 10px; + color: white; + font-size: 1rem; + font-weight: 600; + cursor: pointer; + transition: all 0.3s ease; + position: relative; + overflow: hidden; + } + + .challenge-btn:hover { + transform: translateY(-2px); + box-shadow: 0 5px 15px rgba(255, 107, 107, 0.4); + } + + .challenge-btn:active { + transform: translateY(0); + } + + .challenge-btn::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); + transition: left 0.5s; + } + + .challenge-btn:hover::before { + left: 100%; + } + + .results-panel { + background: #1a1a1a; + border-radius: 10px; + padding: 1.5rem; + font-family: 'Courier New', monospace; + font-size: 0.9rem; + height: 300px; + overflow-y: auto; + border: 1px solid #333; + margin-top: 1rem; + } + + .log-entry { + margin: 0.3rem 0; + color: #00ff00; + line-height: 1.4; + } + + .log-error { + color: #ff4444; + } + + .log-warning { + color: #ffaa00; + } + + .log-info { + color: #4ecdc4; + } + + .log-result { + color: #4CAF50; + font-weight: bold; + } + + .log-details { + color: #888888; + font-size: 0.85em; + margin-left: 1rem; + } + + .stats-banner { + background: rgba(0, 0, 0, 0.5); + padding: 1rem; + border-radius: 10px; + text-align: center; + margin: 1rem 0; + } + + .stats-banner h3 { + margin: 0 0 0.5rem; + color: #ff6b6b; + } + + .footer { + text-align: center; + padding: 2rem; + background: rgba(0, 0, 0, 0.3); + margin-top: 3rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + + @media (max-width: 768px) { + .header h1 { + font-size: 2rem; + } + + .challenge-grid { + grid-template-columns: 1fr; + } + + .challenge-buttons { + grid-template-columns: 1fr; + } + } + </style> +</head> +<body> + <div class="header"> + <a href="index.html" class="back-btn">← Back to NoFuture</a> + <h1>🛡️ Security Challenge</h1> + <p>Try to break our memguard protection - we dare you!</p> + </div> + + <div class="challenge-container"> + <div class="challenge-grid"> + <!-- Memory Protection Panel --> + <div class="challenge-panel"> + <div class="panel-title"> + <div class="status-indicator"></div> + Memory Protection Status + </div> + <div class="metric"> + <span class="metric-label">Memguard Status:</span> + <span class="metric-value" id="memguardStatus">Loading...</span> + </div> + <div class="metric"> + <span class="metric-label">Protected Pages:</span> + <span class="metric-value" id="protectedPages">-</span> + </div> + <div class="metric"> + <span class="metric-label">Locked Memory:</span> + <span class="metric-value" id="lockedMemory">-</span> KB + </div> + <div class="metric"> + <span class="metric-label">Access Attempts Blocked:</span> + <span class="metric-value" id="blockedAttempts">-</span> + </div> + </div> + + <!-- Access Control Panel --> + <div class="challenge-panel"> + <div class="panel-title"> + <div class="status-indicator"></div> + Access Control Matrix + </div> + <div class="metric"> + <span class="metric-label">Root Access:</span> + <span class="metric-value blocked">DENIED</span> + </div> + <div class="metric"> + <span class="metric-label">Process Isolation:</span> + <span class="metric-value">ENFORCED</span> + </div> + <div class="metric"> + <span class="metric-label">Memory Dumps:</span> + <span class="metric-value blocked">BLOCKED</span> + </div> + <div class="metric"> + <span class="metric-label">Debugger Access:</span> + <span class="metric-value blocked">BLOCKED</span> + </div> + <div class="metric"> + <span class="metric-label">Swap Protection:</span> + <span class="metric-value">ACTIVE</span> + </div> + <div class="metric"> + <span class="metric-label">Cold Boot Defense:</span> + <span class="metric-value">ENABLED</span> + </div> + </div> + </div> + + <!-- Main Challenge Section --> + <div class="challenge-section"> + <div class="challenge-title">🔥 Security Challenge: Break Our Protection!</div> + <div class="stats-banner"> + <h3>Challenge Statistics</h3> + <p>Attempts: <span id="totalAttempts">0</span> | Success Rate: <strong style="color: #ff4444;">0%</strong> | Protection Status: <strong style="color: #4CAF50;">UNBREACHABLE</strong></p> + </div> + + <p style="text-align: center; font-size: 1.1rem; margin-bottom: 2rem;"> + We're so confident in our memguard protection that we challenge you to try breaking it. + <strong>Even with root privileges, you cannot access protected conversations!</strong> + </p> + + <div class="challenge-buttons"> + <button class="challenge-btn" onclick="challengeSecurity('root_access')"> + 🔴 Challenge Root Access + <div style="font-size: 0.8em; opacity: 0.8;">Try to bypass with sudo privileges</div> + </button> + <button class="challenge-btn" onclick="challengeSecurity('memory_dump')"> + 💾 Try Memory Dump + <div style="font-size: 0.8em; opacity: 0.8;">Attempt core dump extraction</div> + </button> + <button class="challenge-btn" onclick="challengeSecurity('debugger_attach')"> + 🐛 Attach Debugger + <div style="font-size: 0.8em; opacity: 0.8;">Try ptrace and gdb access</div> + </button> + <button class="challenge-btn" onclick="challengeSecurity('process_scan')"> + 🔍 Scan Process Memory + <div style="font-size: 0.8em; opacity: 0.8;">Search for secret patterns</div> + </button> + <button class="challenge-btn" onclick="challengeSecurity('cold_boot')"> + ❄️ Cold Boot Attack + <div style="font-size: 0.8em; opacity: 0.8;">Simulate memory freeze attack</div> + </button> + <button class="challenge-btn" onclick="challengeSecurity('swap_analysis')"> + 💿 Swap File Analysis + <div style="font-size: 0.8em; opacity: 0.8;">Try to find data in swap</div> + </button> + </div> + + <div class="results-panel" id="challengeResults"> + <div class="log-entry">[READY] Security challenge initialized - all attack vectors monitored</div> + <div class="log-info">[INFO] Memguard protection active - try to break through!</div> + <div class="log-warning">[WARNING] All attempts will be logged and blocked</div> + </div> + </div> + </div> + + <div class="footer"> + <p><strong>Results:</strong> All attempts blocked by memguard protection!</p> + <p><em>Even with root privileges, your conversations remain completely inaccessible.</em></p> + <p style="margin-top: 1rem; opacity: 0.7;"> + <i class="fab fa-github"></i> + <a href="https://github.com/yourusername/nofuture" style="color: #4ecdc4; text-decoration: none;"> + View source code on GitHub + </a> + </p> + </div> + + <script> + // API endpoints + const API_SECURITY_DEMO = "/api/security_demo"; + const API_SECURITY_CHALLENGE = "/api/security_challenge"; + + let totalAttempts = 0; + let successfulBreaches = 0; + + // Load security data on page load + async function loadSecurityData() { + try { + const response = await fetch(API_SECURITY_DEMO); + const data = await response.json(); + + // Update status indicators + document.getElementById('memguardStatus').textContent = data.memguard_status; + document.getElementById('memguardStatus').className = + data.memguard_status === 'ACTIVE' ? 'metric-value' : 'metric-value blocked'; + + document.getElementById('protectedPages').textContent = data.protected_pages; + document.getElementById('lockedMemory').textContent = data.locked_memory_kb; + document.getElementById('blockedAttempts').textContent = data.access_attempts_blocked; + + // Display any live test results + if (data.live_demo_results && data.live_demo_results.length > 0) { + data.live_demo_results.forEach(result => { + addLogEntry(`[${result.timestamp}] ${result.test_name}: ${result.result}`, 'log-info'); + }); + } + + } catch (error) { + console.error('Failed to load security data:', error); + addLogEntry('[ERROR] Failed to connect to security monitoring system', 'log-error'); + } + } + + // Challenge a specific security mechanism + async function challengeSecurity(testType) { + totalAttempts++; + updateStats(); + + addLogEntry(`[CHALLENGE] Launching ${testType.replace('_', ' ')} attack...`, 'log-warning'); + + // Add some dramatic delay + await new Promise(resolve => setTimeout(resolve, 1000)); + + try { + const response = await fetch(API_SECURITY_CHALLENGE, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ test_type: testType }), + }); + + const result = await response.json(); + + // Display result with dramatic effect + addLogEntry(`[${result.timestamp}] ${result.test_name}: ${result.result}`, 'log-result'); + addLogEntry(`[DETAILS] ${result.details}`, 'log-details'); + + if (result.status === 'BLOCKED') { + addLogEntry(`[SECURITY] Attack vector neutralized - protection holding strong`, 'log-info'); + } else if (result.status === 'WARNING') { + addLogEntry(`[ALERT] Partial breach detected - investigating...`, 'log-warning'); + successfulBreaches++; + } else { + addLogEntry(`[CRITICAL] Protection compromised - this should never happen!`, 'log-error'); + successfulBreaches++; + } + + // Refresh data + setTimeout(loadSecurityData, 500); + updateStats(); + + } catch (error) { + addLogEntry(`[ERROR] Challenge failed: ${error.message}`, 'log-error'); + } + } + + // Add entry to challenge log + function addLogEntry(message, className = 'log-entry') { + const log = document.getElementById('challengeResults'); + const entry = document.createElement('div'); + entry.className = className; + entry.textContent = message; + + log.appendChild(entry); + log.scrollTop = log.scrollHeight; + + // Keep only last 25 entries + if (log.children.length > 25) { + log.removeChild(log.firstChild); + } + } + + // Update challenge statistics + function updateStats() { + const successRate = totalAttempts > 0 ? ((successfulBreaches / totalAttempts) * 100).toFixed(1) : 0; + document.getElementById('totalAttempts').textContent = totalAttempts; + + // Update success rate color + const rateElement = document.querySelector('#totalAttempts').parentNode; + if (successRate > 0) { + rateElement.innerHTML = rateElement.innerHTML.replace(/Success Rate: <strong[^>]*>.*?<\/strong>/, + `Success Rate: <strong style="color: #ffaa00;">${successRate}%</strong>`); + } + } + + // Initialize on page load + document.addEventListener('DOMContentLoaded', () => { + loadSecurityData(); + + // Refresh every 10 seconds + setInterval(loadSecurityData, 10000); + + // Add some initial flair + setTimeout(() => { + addLogEntry('[SYSTEM] All defense mechanisms online and operational', 'log-info'); + }, 2000); + }); + + // Make functions globally available + window.challengeSecurity = challengeSecurity; + </script> +</body> +</html> |
