{"id":30223948,"url":"https://github.com/d1se0/brutepswa","last_synced_at":"2026-04-17T05:02:57.508Z","repository":{"id":307660175,"uuid":"1030274680","full_name":"D1se0/brutePSWA","owner":"D1se0","description":"BrutePSWA es una herramienta en Python para realizar fuerza bruta sobre PowerShell Web Access, detectando credenciales válidas, sesiones excedidas y accesos restringidos en entornos de prueba.","archived":false,"fork":false,"pushed_at":"2025-08-01T11:29:22.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-14T13:04:12.565Z","etag":null,"topics":["credentials","page","pages","powershell","powershell-script","ps","ps-website","python","python3","script","vulnerability","windows","windows-server"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/D1se0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-01T11:15:02.000Z","updated_at":"2025-08-01T11:31:56.000Z","dependencies_parsed_at":"2025-08-01T13:40:30.561Z","dependency_job_id":"fd14c6a4-355c-411b-9ff9-f284f3ad8cd5","html_url":"https://github.com/D1se0/brutePSWA","commit_stats":null,"previous_names":["d1se0/brutepswa"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/D1se0/brutePSWA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/D1se0%2FbrutePSWA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/D1se0%2FbrutePSWA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/D1se0%2FbrutePSWA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/D1se0%2FbrutePSWA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/D1se0","download_url":"https://codeload.github.com/D1se0/brutePSWA/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/D1se0%2FbrutePSWA/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31915900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["credentials","page","pages","powershell","powershell-script","ps","ps-website","python","python3","script","vulnerability","windows","windows-server"],"created_at":"2025-08-14T13:01:40.626Z","updated_at":"2026-04-17T05:02:57.483Z","avatar_url":"https://github.com/D1se0.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🛡️ BrutePSWA - Herramienta de Fuerza Bruta para PowerShell Web Access\n\n**BrutePSWA** es una herramienta en **Python 3** diseñada para realizar ataques de fuerza bruta contra **PowerShell Web Access (PSWA)**.  \nPermite probar múltiples contraseñas de forma controlada para detectar credenciales válidas, identificando además escenarios de sesiones excedidas o usuarios sin privilegios.\n\n\u003e ⚠️ **Aviso legal:** Esta herramienta es solo para fines educativos y pruebas en entornos controlados.  \n\u003e El uso en sistemas que no te pertenecen puede ser ilegal.  \n\n---\n\n## ✨ Características\n\n- Fuerza bruta contra portales de **PowerShell Web Access** (`/pswa/en-US/logon.aspx`)\n- Detección de:\n  - ✅ Autenticación correcta\n  - ⚠️ Límite de sesiones por usuario excedido\n  - ⚠️ Usuario sin privilegios para acceder a PSWA\n- Manejo de errores ante IPs inválidas o inaccesibles\n- Detección de éxito también si existen **sesiones desconectadas disponibles**\n- Permite parametrizar:\n  1. **IP del objetivo**\n  2. **Usuario a probar**\n  3. **Diccionario de contraseñas**\n\n---\n\n## 🖥️ Uso de la Herramienta\n\n```bash\npython3 brutePSWA.py \u003cIP\u003e \u003cusuario\u003e \u003cdiccionario\u003e\n```\n\nEjemplo:\n\n```bash\npython3 brutePSWA.py 192.168.1.38 '.\\Administrator' rockyou.txt\n```\n\nSalida esperada:\n\n```\n[+] Verificando objetivo 192.168.1.38...\n[+] Objetivo válido, iniciando fuerza bruta contra .\\Administrator con rockyou.txt\n\n[1] Probando password: admin123\n[2] Probando password: P@ssw0rd!\n[+] ¡Contraseña encontrada!: P@ssw0rd!\n```\n\nPero cuando llega a un numero maximo de solicitudes o un numero maximo de sesiones activas, podemos ver igualmente la contraseñas con estos mensajes de aquí:\n\n```\n[+] Verificando objetivo 192.168.1.38...\n[+] Objetivo válido, iniciando fuerza bruta contra .\\Administrator con rockyou.txt\n\n[1] Probando password: deonta\n[2] Probando password: dennis2\n[3] Probando password: P@ssw0rd!\n[!] WARNING: Se ha excedido el límite de sesiones permitidas para este usuario.\n[!] Hay que esperar a que alguna sesión se cierre antes de seguir intentando.\n```\n\n\u003e Con esto sabemos que la contraseña de dicho usuario en este caso seria `P@ssw0rd!` aunque el numero maximo de intentos haya saltado, pero no esta dando la pista de que esa es su contarseña.\n\nLo mismo pasa con este otro mensaje de aquí:\n\n```\n[+] Verificando objetivo 192.168.1.38...\n[+] Objetivo válido, iniciando fuerza bruta contra .\\d1se0 con rockyou.txt\n\n[1] Probando password: deonta\n[2] Probando password: dennis2\n[3] Probando password: P@ssw0rd!\n[4] Probando password: diseo\n[!] WARNING: Usuario .\\d1se0 no tiene privilegios para iniciar sesión PSWA.\n[!] El acceso remoto PowerShell puede estar deshabilitado o restringido para este usuario.\n```\n\n\u003e Con ete mensaje sabemos que la contraseña del usuario `d1se0` es `diseo` pero no tiene privilegios para establecer una sesion Web, igualemente nos da la pista de que a nivel de sistema tiene dicha contraseña.\n\n---\n\n## ⚙️ Preparación de un Entorno de Pruebas en Windows Server 2019/2022\n\nPara probar BrutePSWA, primero debemos configurar PowerShell Web Access en un servidor Windows.\n\n### 1️⃣ Requisitos previos\n\n`Windows Server 2019 o 2022`\n\nCredenciales de `administrador`\n\nAcceso a `PowerShell` con permisos elevados\n\n### 2️⃣ Habilitar `PowerShell Web Access (PSWA)`\n\nEjecuta PowerShell como Administrador y corre el siguiente script:\n\n```powershell\n# Comprobar privilegios de administrador\nif (-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] \"Administrator\")) {\n    Write-Warning \"Please run this script as an Administrator!\"\n    Exit\n}\n\n# Instalar el rol de PowerShell Web Access\ntry {\n    Install-WindowsFeature -Name WindowsPowerShellWebAccess -IncludeManagementTools\n    Write-Host \"Windows PowerShell Web Access feature installed successfully.\" -ForegroundColor Green\n} catch {\n    Write-Error \"Failed to install Windows PowerShell Web Access feature: $_\"\n    Exit\n}\n\n# Instalar IIS si no está presente\nif (!(Get-WindowsFeature Web-Server).Installed) {\n    Install-WindowsFeature -Name Web-Server -IncludeManagementTools\n    Write-Host \"IIS installed successfully.\" -ForegroundColor Green\n}\n\n# Configurar el gateway PSWA con certificado de prueba\ntry {\n    Install-PswaWebApplication -UseTestCertificate\n    Write-Host \"PowerShell Web Access gateway configured successfully.\" -ForegroundColor Green\n} catch {\n    Write-Error \"Failed to configure PowerShell Web Access gateway: $_\"\n    Exit\n}\n\n# Añadir regla de autorización global (solo para laboratorio)\nAdd-PswaAuthorizationRule -UserName * -ComputerName * -ConfigurationName *\n\nWrite-Host \"PowerShell Web Access has been enabled and configured.\" -ForegroundColor Green\nWrite-Host \"Warning: This configuration allows all users to access all computers. Please adjust the authorization rules for your specific security requirements.\" -ForegroundColor Yellow\n```\n\n🔹 Esto instalará PSWA y lo expondrá en:\n\n```bash\nhttps://\u003cIP-Servidor\u003e/pswa\n```\n\n### 3️⃣ Referencias y documentación\n\nScript de instalación:\n\n[-\u003e Codigo original GitHub (MHaggis)](https://gist.github.com/MHaggis/7e67b659af9148fa593cf2402edebb41)\n\nArtículo de Splunk sobre riesgos de PSWA:\n\n[-\u003e Informacion de PSWA](https://www.splunk.com/en_us/blog/security/powershell-web-access-your-network-s-backdoor-in-plain-sight.html)\n\n---\n\n## 🧪 Consejos de Laboratorio\n\nUsa VMs aisladas para tus pruebas (`VirtualBox`, `VMware` o `Hyper-V`)\n\nModifica reglas de `PSWA` para usuarios específicos si quieres simular accesos restringidos\n\n---\n\n## ⚠️ Advertencia\n\nEsta herramienta debe usarse solo en entornos controlados.\nEl uso no autorizado en sistemas de terceros puede ser ilegal y conllevar responsabilidades penales.\n\n---\n\n## ✍️ Autor\n\nHerramienta desarrollada para fines educativos y de pentesting ético.\nInspirada en investigaciones de `PSWA` como vector de riesgo en entornos Windows Server.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd1se0%2Fbrutepswa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd1se0%2Fbrutepswa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd1se0%2Fbrutepswa/lists"}