Curiosidades sobre el filtrado de código de Windows XP

Sergio De Los Santos    28 septiembre, 2020
Curiosidades sobre el filtrado de código de Windows XP

La atención se centraba hace unos días en Reddit, dentro de una comunidad que se caracteriza por sus teorías conspiranoicas. Según las noticias consistía en el filtrado de 43 GBs de datos de “Windows XP” pero, según el propio nombre del Torrent (más exacto), lo que se filtraba eraMicrosoft leaked source code archive, porque realmente contenía mucho más. Se trata de un compendio de filtraciones anteriores, documentos, documentales, imágenes… y sí, código fuente inédito. Más de la mitad del contenido lo componen en realidad todas las patentes de Microsoft, hasta 27 GBs comprimidos. Analicemos otras curiosidades.

Análisis de directorios y ficheros

Aquí os dejamos una panorámica de lo que se descarga:

En la descripción del propio Torrent se deja claro. Incluidos en este Torrent están:

  • MS-DOS 3.30 OEM Adaptation Kit (source code)
  • MS-DOS 6.0 (source code)
  • DDKs / WDKs stretching from Win 3.11 to Windows 7 (source code)
  • Windows NT 3.5 (source code)
  • Windows NT 4 (source code)
  • Windows 2000 (source code)
  • Windows XP SP1 (source code)
  • Windows Server 2003 (build 3790) (source code)  (file name is ‘nt5src.7z’)
  • Windows CE 3.0 Platform Builder (source code)
  • Windows CE 4.2 Shared Source (source code)
  • Windows CE 5.0 Shared Source (source code)
  • Windows CE 6.0 R3 Shared Source (source code)
  • Windows Embedded Compact 7.0 Shared Source (source code)
  • Windows Embedded Compact 2013 (CE 8.0) Shared Source (source code)
  • Windows 10 Shared Source Kit (source code)
  • Windows Research Kernel 1.2 (source code)
  • Xbox Live (source code)   (most recent copyright notice in the code says 2009)
  • Xbox OS (source code)  (both the “Barnabas” release from 2002, and the leak that happened in May 2020)

En negrita hemos indicado lo más relevante puesto que, del resto, buena parte ya se conocía por filtraciones anteriores. Por ejemplo, en mayo de 2020 se filtró el código de la Xbox original y NT 3.5; en 2017, algunas partes de Windows 10; y en 2004, algunas partes de NT y 2000.

Reproducimos aquí ese TXT completo justificando en qué consiste el Torrent.

El apartado de PDFs no tiene desperdicio, más que nada por el valor de juntar tanta documentación y noticias sobre revelaciones de código.

Un misterioso RAR cifrado

El leak contiene un RAR cifrado (Windows_xp_source.rar), y la propia persona que lo incluye apela a la comunidad para intentar descifrar la contraseña.

Including ‘windows_xp_source.rar’ in this collection, even though it’s password protected. Maybe someone can crack (or guess) the password and see what’s inside. The archive is bigger than the other XP / Neptune source tree. It might be genuine, it might not. But I’m including it just in case, since the file was so hard to track down. Original upload date seems to have been around 2007 or 2008.

The hash key is: $RAR3$*0*c9292efa2e495f90*044d2e5042869449c10f890c1cced438

¿Es esto relevante?

Lo importante, por tanto, y parece que nuevo, es el código fuente del kernel 5 de 2003 y compartido en buena parte también por XP. Nt5src.7z, que son aproximadamente 2.4 gigabytes y que descomprimido alcanza cerca de 10 GB. Al parecer el código es muy completo, pero no se sabe si contiene lo suficiente como para compilarlo. La inmensa mayoría de los ficheros están fechados el 2 de septiembre de 2002. El Service Pack salió oficialmente el día 9.

Con respecto a si este leak supone una amenaza para seguridad, ayudará a detectar o analizar más rápidamente potenciales vulnerabilidades que todavía se conserven en Windows 10 por su código heredado. Los atacantes podrán, una vez identificado una oportunidad de fallo, entender mejor por qué se produce si acuden a la porción de código en claro. Y no sólo las partes heredadas en Windows 10. Windows XP y 2003 en sí mismos todavía se encuentran en una buena parte de sistemas importantes. Claro que desde 2014 que se detuvo el soporte, los administradores tienen otros problemas añadidos si aún mantienen este sistema. Pero esto lo puede agravar. No demasiado, pero es importante.

En todo caso, cualquier investigador que buscara vulnerabilidades en el código, comenzaría por los comentarios… donde los programadores reflejan dudas, temores y… potenciales grietas. Una simple búsqueda por “WARNING:” nos da alguna idea interesante de qué cosas pueden fallar en el código, según los propios programadores. Algunas no dejarán de ser curiosidades y otros podrían verse como potenciales problemas de seguridad. Ponemos aquí algunos ejemplos.

No comprueba el búfer…
Podría romperlo todo…
Es difícil de mirar…
Jamás rompas la compatibilidad hacia atrás…
Overflow…
Esto no me gusta pero…

La cadena JlJmIhClBsr

No queríamos dejar pasar el recordar que en el código relacionado con la compartición de ficheros, se encuentra la cadena JlJmIhClBsr, algo curioso que puede indicar que la NSA ya tenía acceso al código de Windows (esto no sería nada raro) pero que además da a entender que cometió un despiste a la hora de crear el exploit de EnternalBlue. Porque al incluir esa cadena, que se encontraba en el código fuente no se sabe muy bien por qué, estaba añadiendo (sin ser consciente) una especie de firma IDS muy relevante para saber si alguien estaba siendo atacado por el exploit de EternalBlue.

Esto es muy curioso porque además implicaría que la NSA creó el exploit fijándose o adaptando el código fuente directamente. Cuando se hizo público el exploit, WannaCry, creado bajo la base de EternalBlue, también heredó esa cadena. Sin embargo, la cadena no sirve para nada y cuando se portó a Metasploit se eliminó sin más. En su día, ya investigamos y comprobamos que en realidad esta cadena JlJmIhClBsr solo tendría una utilidad: servir perfectamente como una firma o marca para detectar el ataque por red. Un despiste por parte de la NSA.

Parte del código de svrcall.c

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *