Skip to content

Azzlaer/Panel_RDP_Pro

Repository files navigation

🛡️ RDP Port Admin Enterprise

Panel web en PHP + Bootstrap 5 + PowerShell para administrar el puerto de Escritorio Remoto de Windows / RDP desde una interfaz empresarial con login, dashboard, auditoría y acciones administrativas.

Créditos: ChatGPT OpenAI y Azzlaer para LatinBattle.com


IMAGENES DEL PROYECTO

Captura 0 Captura 1 Captura 2

✨ Características principales

  • 🔐 Login protegido por sesión PHP.
  • 🧭 Dashboard empresarial con tarjetas de estado.
  • 🖥️ Lectura del puerto actual de RDP desde el registro de Windows.
  • 🔥 Comprobación de regla entrante en Firewall de Windows.
  • ⚙️ Comprobación del servicio TermService.
  • 🚪 Prueba TCP de puerto remoto/local usando Test-NetConnection.
  • ✏️ Cambio del puerto RDP en el registro de Windows.
  • 🔓 Creación/actualización automática de regla firewall para el puerto elegido.
  • ▶️ Habilitar e iniciar el servicio de Escritorio Remoto.
  • 🔄 Reiniciar servicio RDP.
  • ⚠️ Botón para reiniciar Windows si el cambio lo requiere.
  • 📜 Log de auditoría para acciones del panel.
  • 🧩 Interfaz AJAX por secciones: Dashboard, Puerto RDP, Firewall & Servicio, Auditoría.
  • 🧱 Separación limpia entre PHP y PowerShell.

📁 Estructura del proyecto

rdp_port_admin/
├─ index.php                     # Login
├─ dashboard.php                 # Layout principal
├─ api.php                       # API AJAX protegida
├─ logout.php                    # Cerrar sesión
├─ config.php                    # Configuración principal
├─ assets/
│  ├─ css/style.css              # Estilo empresarial oscuro
│  └─ js/app.js                  # Navegación AJAX y llamadas API
├─ includes/
│  ├─ bootstrap.php              # Inicialización global
│  ├─ functions.php              # Seguridad, CSRF, PowerShell, logs
│  └─ header.php                 # Layout visual del panel
├─ pages/
│  ├─ dashboard.php              # Estado general
│  ├─ settings.php               # Cambio de puerto / reinicio Windows
│  ├─ security.php               # Firewall / servicio
│  └─ logs.php                   # Auditoría
├─ scripts/
│  ├─ rdp_tools.ps1              # Administración real de Windows
│  ├─ start_xampp_as_admin.bat   # Abrir XAMPP como administrador
│  └─ test_powershell_status.bat # Prueba directa del script PowerShell
└─ logs/
   ├─ audit.log                  # Se crea automáticamente
   └─ error.log                  # Se crea automáticamente

🔑 Acceso por defecto

Usuario: admin
Password: admin123

Cambia la contraseña antes de usarlo en producción.

Para crear un hash nuevo ejecuta en consola:

php -r "echo password_hash('TU_PASSWORD_NUEVO', PASSWORD_DEFAULT);"

Luego reemplaza el valor de ADMIN_PASS_HASH en config.php.


⚙️ Requisitos

  • Windows Server o Windows 10/11.
  • PHP 8.x recomendado.
  • Apache/XAMPP o IIS con PHP.
  • PowerShell 5+.
  • Permisos de administrador para cambiar:
    • Registro de Windows.
    • Firewall.
    • Servicio TermService.
    • Reinicio del sistema.

🚀 Instalación rápida en XAMPP

  1. Copia la carpeta rdp_port_admin dentro de:
C:\xampp\htdocs\
  1. Abre XAMPP como administrador usando:
scripts\start_xampp_as_admin.bat
  1. Inicia Apache desde XAMPP Control Panel.

  2. Abre en el navegador:

http://127.0.0.1/rdp_port_admin/

🧪 Probar PowerShell manualmente

Antes de usar el panel, puedes probar si el script responde bien:

scripts\test_powershell_status.bat

También puedes ejecutar:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\rdp_tools.ps1 -Action status

🧯 Recomendación de uso seguro

El orden recomendado para cambiar el puerto RDP es:

  1. Entra al panel desde el mismo servidor.
  2. Ve a Firewall & Servicio.
  3. Permite el nuevo puerto en Firewall.
  4. Ve a Puerto RDP.
  5. Cambia el puerto.
  6. Reinicia el servicio RDP o Windows.
  7. Prueba conexión con el nuevo puerto.
  8. Solo después, cierra la conexión antigua.

⚠️ Si estás conectado por RDP y cambias el puerto sin abrir firewall primero, puedes perder acceso remoto.


🔒 Seguridad incluida

  • LOCAL_ONLY = true por defecto.
  • Login por sesión.
  • Token CSRF en acciones POST.
  • Auditoría en logs/audit.log.
  • Separación de acciones administrativas en PowerShell.

En config.php puedes cambiar:

define('LOCAL_ONLY', true);
define('ALLOWED_IPS', []);

Para permitir acceso desde otra IP, usa con cuidado:

define('LOCAL_ONLY', false);
define('ALLOWED_IPS', ['192.168.1.50']);

🧰 Acciones soportadas por PowerShell

-Action status
-Action check-remote -HostName 127.0.0.1 -Port 3389
-Action set-port -Port 3390
-Action enable-firewall -Port 3390
-Action enable-service
-Action restart-service
-Action reboot -Minutes 1

🧠 Notas técnicas

El puerto RDP se lee/escribe en:

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber

El servicio revisado es:

TermService

La regla firewall creada por el panel se llama:

RDP Port Admin - TCP

🏢 Idea del proyecto

Este panel está pensado para administradores que quieren una interfaz visual simple pero potente para revisar el estado de RDP en Windows, abrir firewall, cambiar puerto y reiniciar servicios sin entrar manualmente al registro o consola.


⚠️ Advertencia

No publiques este panel directamente en internet sin VPN, HTTPS, IP allowlist, password fuerte y reglas de acceso. Es una herramienta administrativa poderosa y debe usarse solo en entornos controlados.


ChatGPT OpenAI y Azzlaer para LatinBattle.com

About

Un panel rapido creado con PHP que permite cambiar, analizar, detectar, reiniciar windows, para la administracion de puerto RDP de Windows

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors