Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86373079

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

El kernel al ser el núcleo de cualquier sistema operativo, y la capa entre el hardware y software. Una explotación de este, deriva en que todo es ejecutado por el usuario SYSTEM (el usuario con mayor privilegios de todos en sistemas Windows).

El proceso para encontrar vulnerabilidades de kernel y explotarlas es aproximadamente el siguiente:

  1. Enumeramos la versión y parches de Windows –> systeminfo
  2. Buscamos exploits asociados a esa versión o parches
  3. Compilamos y ejecutamos –> No hace falta compilar si nos descargamos ya un exploit compilado

Hay que tener cuidado con los exploits de kernel, ya que suelen ser inestables, de un solo uso o que cause un crasheo del sistema. Por eso esta debe ser una de las últimas opciones para escalar privilegios.

Hay distintas herramientas que nos pueden ayudar a identificar este tipo de vulnerabilidades:

  • Windows Exploit Suggester Next Generation
  • Watson
  • En metasploit: windows/gather/enum_patches
  • Internet

Una vez enumerado que tipos de parches faltan o que vulnerabilidad afectan, podemos hacer uso de SecWiki, es un recurso que contiene una gran cantidad de exploits de kernel ya compilados.

Dicho esto, vamos con un caso práctico usando «Windows Exploit Suggester Next Generation»:

Lo primero de todo es obtener el systeminfo, esto incluye pasarlo a nuestra máquina Kali. Esta parte es sencilla, ya que lo podemos hacer en un solo paso. En nuestro Linux (en mi caso, kali) nos ejecutamos un servidor samba:

image

El argumento pwned es el nombre del recurso compartido, y el segundo argumento $(pwd) es la forma en la que le indicamos la ruta donde se ejecutará el servidor, en este caso, la ruta actual (también podríamos indicarlo con solo un punto).

Teniendo el servidor montado, nos dirigimos al Windows y simplemente redirigimos la salida del comando a nuestro servidor y recurso compartido:

image 1

Podemos confirmar que ha habido conexión si nos dirigimos al kali:

image 2

De esta forma, ya tenemos la salida del systeminfo:

image 3
image 4

Teniendo esto, vamos a hacer uso del «WESNG», lo primero es actualizar la base de datos de este. Es muy sencillo, simplemente lanzamos el siguiente comando:

image 5

Con esto, habrá actualizado el listado de CVEs.

El comando más básico de todos simplemente sería especificarle el archivo systeminfo:

image 6

Su salida es demasiado grande como para mostrarlo

image 7

Pero no pasa nada, vamos a usar algunos argumentos para solo ver lo que nos interesa. La estructura que sigue WESNG para mostrar cada CVE al cual puede ser vulnerable la máquina Windows, es la siguiente:

image 8

El campo que nos interesa es el Impact. Podemos ver los posibles valores de Impact usando grep y sort:

image 9

De esta forma, si nos fijamos, hay un valor de este campo que puede que sea por el que nos interese filtrar. Estoy hablando de «Elevation of Privilege», ya que es lo que queremos conseguir.

Sabiendo esto, podemos especificar a «WESNG» que solo nos muestre los CVE cuyo impacto sea una elevación de privilegios:

image 10

De esta forma, acabamos de pasar de 31883 líneas a:

image 11

Que siguen siendo muchas, pero ahora es trabajo nuestro encontrar el exploit a usar. Existe otro filtrado que quizás nos interese, ya que «WESNG» muestra algunos CVE sin «Exploits» (que OJO, no quiere decir que no haya, sino que al menos, no tiene ninguno asociado):

image 12

Si no nos interesa ver los CVEs los cuales no tengan ningún exploit asociado, podemos filtrar la búsqueda añadiendo el argumento --exploits-only:

image 13

Si vemos ahora el número de líneas, hemos bajado mucho más:

image 14

Hasta aquí posibles filtrados que nos puede interesar a la hora de buscar CVEs en «WESNG». Aun así, la herramienta tiene un panel de ayuda bastante completo y con muchas más opciones.

Llegados a este punto, ya dependerá de nosotros el exploit a escoger, con la experiencia habrá CVEs que nos suenen y vayamos al grano a probar esos según el sistema operativo. Esto ya se consigue con el tiempo y el esfuerzo.

En mi caso, voy a usar el «CVE-2019-1458», que ojo, el Windows 7 es vulnerable, y podemos encontrar exploits, sin embargo, «WESNG» indica que no tiene ninguno asociado, por lo que si hubiésemos usado el argumento --exploits-only, lo hubiese descartado, a pesar de ser vulnerable:

image 15

Habiendo localizado el CVE, vamos a dirigirnos a SecWiki para ver si tiene el exploit compilado:

image 17
image 16

En este caso, SecWiki, no tiene ningún exploit en el repositorio. Sin embargo, en el README.md nos indica otro repositorio el cual si contiene un exploit para este CVE:

image 18

Es típico que en los repositorios de exploits de escalación de privilegios se nos haga un PoC (Proof of Concept) del exploit:

image 19

En este caso, vemos dos cosas:

  1. El exploit solo se puede ejecutar una vez por cada inicio del sistema (esto nos puede indicar la inestabilidad resultante del exploit en el sistema).
  2. El exploit sigue la estructura de:
    1. cve-2019-1458.exe <comando a ejecutar>

Sabiendo esto y teniendo descargado el binario del exploit en el Windows 7:

image 20

Vamos a escalar privilegios.

Establecemos un servidor samba en nuestro kali, además de ponernos en escucha:

image 21

Nota: el directorio donde nos encontramos ejecutando el servidor samba, contiene el binario «nc.exe» (netcat para Windows)

Ahora, volvemos al Windows 7, y ejecutaremos el siguiente comando usando el exploit:

image 23

De esta forma, volviendo al kali:

image 25

Conseguimos shell como «nt authority\system».

En el repositorio se nos indicaba que solo era un exploit de un solo uso por cada inicio, podemos confirmarlo:

image 26

Es tal la inestabilidad de en este caso, este exploit (y en general, de los exploits que se aprovechan del kernel), que cuando apagamos la máquina nos sale lo siguiente:

image 27

Esto no pasa claramente con todos los exploits, pero sí que podemos observar la delicadeza de lidiar con el kernel.

Retomando las herramientas mencionadas al principio:

  • Windows Exploit Suggester Next Generation
  • Watson
  • En metasploit: windows/gather/enum_patches
  • Internet

Podemos usar la que más nos guste, Watson por ejemplo en este caso no nos da nada:

image 28

El módulo de metasploit también nos ayuda en esta tarea:

image 29

En este caso no nos da ningún output significativo. Si detectase alguna posible vulnerabilidad nos lo indicaría de la siguiente forma:

Metasploit - Patches Enumeration

Por último, pero no menos importante, otra herramienta a tener en cuenta es el propio internet.

Cuando ejecutamos systeminfo obtenemos la suficiente información como para buscar en Google alguna vulnerabilidad que afecte al Sistema Operativo y a la Versión:

image 30

De esta forma, aunque nos podamos ayudar de distintas herramientas, al final el trabajo manual y la propia investigación será lo que resulte en una escalada de privilegios exitosa.