Wir haben eine Einführung in Webanwendungen und den Zugriff darauf gegeben. Wir haben auch Arten von Sicherheitslücken in Webanwendungen behandelt, darunter die OWASP Top 10. Die OWASP Top 10 sind die häufigsten Sicherheitslücken in Webanwendungen, die in Webanwendungen gefunden und erkannt werden können. Zuletzt haben wir ein praktisches Szenario einer IDOR- oder unsicheren direkten Objektreferenz-Sicherheitslücke demonstriert, die laut OWASP Top 10 als Sicherheitslücke bei defekter Zugriffskontrolle eingestuft wird. Dies war Teil von TryHackMe Einführung in die Sicherheit von Webanwendungen Zimmer.

Holen Sie sich Blue Team Notes

SMTP steht für „Simple Mail Transfer Protocol“. Es wird zum Versenden von E-Mails verwendet. Zur Unterstützung von E-Mail-Diensten ist ein Protokollpaar aus SMTP und POP/IMAP erforderlich. Gemeinsam ermöglichen sie dem Benutzer das Versenden ausgehender bzw. Abrufen eingehender E-Mails.

Der SMTP Der Server führt drei grundlegende Funktionen aus:

  •  Es überprüft, wer E-Mails über das SMTP Server.
  •  Es sendet die ausgehende Post
  •  Wenn die ausgehende E-Mail nicht zugestellt werden kann, wird die Nachricht an den Absender zurückgesendet.

Die meisten Leute sind beim Einrichten einer neuen E-Mail-Adresse in E-Mail-Clients von Drittanbietern, beispielsweise Thunderbird, auf SMTP gestoßen. Denn wenn Sie einen neuen E-Mail-Client konfigurieren, müssen Sie die SMTP-Serverkonfiguration konfigurieren, um ausgehende E-Mails senden zu können.

POP und IMAP

POP oder „Post Office Protocol“ und IMAP, „Internet Message Access Protocol“ sind beides E-Mail-Protokolle, die für die Übertragung von E-Mails zwischen einem Client und einem Mailserver verantwortlich sind. Der Hauptunterschied besteht im einfacheren Ansatz von POP, bei dem der Posteingang vom Mailserver auf den Client heruntergeladen wird. IMAP hingegen synchronisiert den aktuellen Posteingang mit neuen E-Mails auf dem Server und lädt alles Neue herunter. Das bedeutet, dass Änderungen am Posteingang, die auf einem Computer über IMAP vorgenommen wurden, bestehen bleiben, wenn Sie den Posteingang anschließend von einem anderen Computer aus synchronisieren. Der POP/IMAP-Server ist für die Durchführung dieses Vorgangs verantwortlich.

Wie funktioniert SMTP arbeiten?

Die Zustellung von E-Mails funktioniert ähnlich wie die Zustellung physischer Post. Der Benutzer stellt die E-Mail (einen Brief) und einen Dienst (den Postzustellungsdienst) bereit und liefert sie in einer Reihe von Schritten in den Posteingang (Briefkasten) des Empfängers. Die Rolle des SMTP Der Server hat bei diesem Dienst die Funktion einer Sortierstelle, die E-Mail (Brief) wird abgeholt und an diesen Server gesendet, der sie dann an den Empfänger weiterleitet.

SMTP-Aufzählung

Aufzählen von Serverdetails

Schlecht konfigurierte oder anfällige Mailserver bieten oft einen ersten Zugang zu einem Netzwerk. Bevor wir jedoch einen Angriff starten, möchten wir den Server mit einem Fingerabdruck versehen, um unsere Angriffe so präzise wie möglich zu gestalten. Wir verwenden dazu die „SMTP-Version”-Modul in MetaSploit, um dies zu tun. Wie der Name schon sagt, scannt es einen Bereich von IP-Adressen und ermittelt die Version aller Mailserver, auf die es stößt.

Aufzählen von Benutzern aus SMTP

Der SMTP Der Dienst verfügt über zwei interne Befehle, die die Aufzählung von Benutzern ermöglichen: VRFY (Bestätigung der Namen gültiger Benutzer) und EXPN (das die tatsächliche Adresse der Aliase und E-Mail-Listen (Mailinglisten) des Benutzers anzeigt). Mit diesen SMTP Befehle können wir eine Liste gültiger Benutzer anzeigen

Wir können dies manuell tun, über eine Telnet-Verbindung- jedoch Metasploit kommt wieder zur Hilfe und stellt ein praktisches Modul mit dem passenden Namen „smtp_enum„Das erledigt die ganze Arbeit für uns! Um das Modul zu verwenden, müssen Sie ihm nur einen Host oder einen Hostbereich zum Scannen und eine Wortliste mit aufzuzählenden Benutzernamen zuweisen.

Anforderungen

Da wir verwenden werden Metasploit Dazu ist es wichtig, dass Sie Metasploit installiert haben. Es ist standardmäßig sowohl auf Kali Linux als auch auf Parrot OS installiert. Es lohnt sich jedoch immer, ein schnelles Update durchzuführen, um sicherzustellen, dass Sie die neueste Version haben, bevor Sie Angriffe starten. Sie können dies mit einem einfachen „sudo apt update“ und dem dazugehörigen Upgrade tun – falls eines erforderlich ist.

Alternativen

Es ist erwähnenswert, dass diese Aufzählungstechnik für die Mehrheit der SMTP Konfigurationen; es gibt jedoch andere, nicht-metasploit-Tools wie smtp-user-enum, die noch besser für die Aufzählung von Benutzerkonten auf Betriebssystemebene unter Solaris über die SMTP Service. Die Aufzählung erfolgt durch Überprüfung der Antworten auf die Befehle VRFY, EXPN und RCPT TO.

Diese Technik könnte in Zukunft angepasst werden, um gegen andere anfällige SMTP-Daemons zu arbeiten, aber zum Zeitpunkt des Schreibens dieses Artikels ist dies noch nicht geschehen. Es ist eine Alternative, die es wert ist, im Hinterkopf zu behalten, wenn Sie versuchen, sich von der Verwendung von Metasploit zB zur Vorbereitung auf OSCP.

Raumantworten

Wofür steht NFS?

Welcher Prozess ermöglicht es einem NFS-Client, mit einem Remote-Verzeichnis zu interagieren, als wäre es ein physisches Gerät?
Was verwendet NFS, um Dateien und Verzeichnisse auf dem Server darzustellen?

Welches Protokoll verwendet NFS zur Kommunikation zwischen Server und Client?

Welche zwei Benutzerdaten verwendet der NFS-Server als Parameter zur Steuerung der Benutzerberechtigungen? Format: Parameter 1 / Parameter 2

Kann ein Windows NFS-Server Dateien mit einem Linux Kunde? (J/N)

Kann ein Linux NFS-Server gibt Dateien mit einem MacOS-Client frei? (J/N)

Was ist die neueste Version von NFS? [veröffentlicht im Jahr 2016, ist aber im Jahr 2020 immer noch aktuell] Hierzu ist externe Recherche erforderlich.

Führen Sie einen gründlichen Portscan Ihrer Wahl durch. Wie viele Ports sind geöffnet?

Welcher Port enthält den Dienst, den wir aufzählen möchten?

Verwenden Sie nun /usr/sbin/showmount -e [IP], um die NFS-Freigaben aufzulisten. Wie lautet der Name der sichtbaren Freigabe?

Zeit, die Freigabe auf unserem lokalen Computer bereitzustellen!

Erste Benutzung "mkdir /tmp/mount”, um ein Verzeichnis auf Ihrem Computer zu erstellen, in das die Freigabe eingebunden werden kann. Dies ist das Verzeichnis /tmp. Beachten Sie also, dass es beim Neustart entfernt wird.

Verwenden Sie dann den Mount-Befehl, den wir zuvor beschrieben haben, um die NFS-Freigabe auf Ihrem lokalen Computer zu mounten. Wechseln Sie in das Verzeichnis, in dem Sie die Freigabe gemountet haben – wie lautet der Name des Ordners darin?

Schauen Sie sich dieses Verzeichnis an und sehen Sie sich die Dateien an. Es sieht so aus, als wären wir im Home-Verzeichnis eines Benutzers …

Interessant! Lassen Sie uns jetzt ein wenig recherchieren und die Ordner durchsehen. Welche dieser Ordnerrs könnte weiterAin Schlüsseln, die uns Fernzugriff auf den Server ermöglichen würden?

Welcher dieser Schlüssel ist für uns am nützlichsten?

Kopieren Sie diese Datei an einen anderen Speicherort auf Ihrem lokalen Computer und ändern Sie die Berechtigungen mit „chmod 600 [Datei]“ auf „600“.

Vorausgesetzt, unsere Vermutung, um welchen Verzeichnistyp es sich handelt, ist richtig, können wir relativ einfach den Namen des Benutzers ermitteln, dem dieser Schlüssel entspricht.

Können wir uns mit am Rechner anmelden? ssh -ich @ ? (J/N)

Wechseln Sie zunächst zum Einhängepunkt auf Ihrer Maschine, wo die NFS-Freigabe noch eingehängt sein soll, und anschließend in das Home-Verzeichnis des Benutzers.

Laden Sie die ausführbare Bash-Datei in Ihr Download-Verzeichnis herunter. Kopieren Sie die ausführbare Bash-Datei dann mit „cp ~/Downloads/bash.“ in die NFS-Freigabe. Die kopierte Bash-Shell muss einem Root-Benutzer gehören. Dies können Sie mit „sudo chown root bash“ festlegen.

Jetzt fügen wir der Bash-Programmdatei, die wir gerade in die Freigabe kopiert haben, die SUID-Bit-Berechtigung hinzu, und zwar mit „sudo chmod +[permission] bash“. Welchen Buchstaben verwenden wir, um das SUID-Bit mit chmod zu setzen?

Machen wir eine Plausibilitätsprüfung und überprüfen die Berechtigungen der ausführbaren Datei „bash“ mit „ls -la bash“. Wie sieht der Berechtigungssatz aus? Stellen Sie sicher, dass er mit -sr-x endet.

Jetzt, SSH Melden Sie sich als Benutzer auf der Maschine an. Listen Sie das Verzeichnis auf, um sicherzustellen, dass die ausführbare Bash-Datei dort vorhanden ist. Jetzt kommt der Moment der Wahrheit. Lassen Sie es mit „./bash -p„. Das -p behält die Berechtigungen bei, sodass es als Root mit SUID- ausgeführt werden kann, da Bash sonst manchmal die Berechtigungen verwirft.

Großartig! Wenn alles gut gegangen ist, sollten Sie eine Shell als Root haben! Was ist das Root-Flag?

Was macht SMTP stehen für?

Was macht SMTP das Versenden von abwickeln? (Antwort im Plural)

Was ist der erste Schritt in der SMTP Verfahren?

Was ist der Standard-SMTP-Port?

Wo kommt die SMTP Server die E-Mail senden, wenn der Server des Empfängers nicht verfügbar ist?

Auf welchem Server landet die E-Mail letztendlich?

Kann ein Linux Wird auf Ihrer Maschine ein SMTP-Server ausgeführt? (J/N)

Kann eine Windows-Maschine ein SMTP Server? (J/N)

Lassen Sie uns zunächst einen Portscan auf der Zielmaschine ausführen, wie beim letzten Mal. Welcher Port ist SMTP weiterlaufen?

Okay, jetzt wissen wir, welchen Port wir anvisieren sollten, also starten wir Metasploit. Welchen Befehl verwenden wir hierfür?

Wenn Sie weitere Hilfe benötigen oder die Verwendung von MetasploitTryHackMe hat ein Modul zu Metasploit, das Sie hier ausprobieren können:

https://tryhackme.com/module/metasploit

Suchen wir nach dem Modul „smtp_version“. Wie lautet der vollständige Modulname?

Großartig, jetzt wählen Sie das Modul aus und listen die Optionen auf. Wie machen wir das?

Schauen Sie sich die Optionen an. Scheint alles richtig zu sein? Welche Option müssen wir einstellen?

Stellen Sie den Wert auf den richtigen Wert für Ihren Zielcomputer ein. Führen Sie dann den Exploit aus. Wie lautet der Systemmailname?

Welcher Mail Transfer Agent (MTA) betreibt den SMTP-Server? Dies erfordert einige externe Recherche.

Gut! Wir haben jetzt eine Menge Informationen über das Zielsystem, um mit der nächsten Phase fortzufahren. Suchen wir nach dem Modul „smtp_enum„, wie lautet der vollständige Modulname?

Wir verwenden die „top-usernames-shortlist.txt“ Wortliste aus dem Unterabschnitt „Benutzernamen“ von Seclists (/usr/share/wordlists/SecLists/Usernames, wenn Sie es installiert haben).

Seclists ist eine erstaunliche Sammlung von Wortlisten. Wenn Sie Kali oder Parrot verwenden, können Sie Seclists mit „sudo apt install seclists“ installieren. Alternativ können Sie das Repository von herunterladen Hier.

Welche Option müssen wir für den Pfad der Wortliste festlegen?

 

Nachdem wir diese Option festgelegt haben, welchen anderen wesentlichen Parameter müssen wir festlegen?

Führen Sie nun den Exploit aus. Dies kann einige Minuten dauern. Holen Sie sich also eine Tasse Tee, Kaffee oder Wasser. Sorgen Sie für ausreichend Flüssigkeitszufuhr!

Okay! Jetzt ist das erledigt. Welcher Benutzername wird zurückgegeben?

Wie lautet das Passwort des Benutzers, den wir während unserer Aufzählungsphase gefunden haben?

Großartig! Nun lasst uns SSH Melden Sie sich als Benutzer beim Server an. Was ist der Inhalt von smtp.txt?

Welche Art von Software ist MySQL?

Auf welcher Sprache basiert MySQL?

Welches Kommunikationsmodell verwendet MySQL?

Was ist eine gängige Anwendung von MySQL?

Welches große soziale Netzwerk verwendet MySQL als Back-End-Datenbank? Dies bedarf weiterer Untersuchung.

Beginnen wir wie immer mit einem Port-Scan, damit wir wissen, auf welchem Port der Dienst läuft, den wir angreifen möchten. Welchen Port verwendet MySQL?

Gut, jetzt glauben wir, dass wir einen Satz Anmeldeinformationen haben. Lassen Sie uns das noch einmal überprüfen, indem wir uns manuell mit dem MySQL-Server verbinden. Wir können das mit dem Befehl „mysql -h [IP] -u [Benutzername] -p

Okay, wir wissen, dass unsere Anmeldeinformationen funktionieren. Beenden wir diese Sitzung mit „exit“ und starten Metasploit.

Wir werden das Modul „mysql_sql“ verwenden.

Suchen, wählen und listen Sie die benötigten Optionen auf. Welche drei Optionen müssen wir festlegen? (in absteigender Reihenfolge).

Führen Sie den Exploit aus. Standardmäßig wird er mit dem Befehl „select version()“ getestet. Welches Ergebnis erhalten Sie dadurch?

Großartig! Wir wissen, dass unser Exploit wie geplant landet. Versuchen wir, anspruchsvollere Informationen zu erhalten. Ändern Sie die Option „SQL“ in „Datenbanken anzeigen“. Wie viele Datenbanken werden zurückgegeben?

Suchen und wählen wir zunächst das Modul „mysql_schemadump“ aus. Wie lautet der vollständige Name des Moduls?

Großartig! Sie haben das jetzt schon ein paar Mal gemacht, also überlasse ich es Ihnen. Legen Sie die relevanten Optionen fest und führen Sie den Exploit aus. Wie heißt die letzte Tabelle, die gedumpt wird?
Super, Sie haben jetzt die Tabellen und Spaltennamen der gesamten Datenbank gesichert. Aber wir können noch einen draufsetzen … suchen Sie nach dem Modul „mysql_hashdump“ und wählen Sie es aus. Wie lautet der vollständige Name des Moduls?

Auch hier überlasse ich es Ihnen. Legen Sie die entsprechenden Optionen fest und führen Sie den Exploit aus. Welcher nicht standardmäßige Benutzer fällt Ihnen auf?

Ein anderer Benutzer! Und wir haben seinen Passwort-Hash. Das könnte sehr interessant sein. Kopieren Sie die Hash-Zeichenfolge vollständig, etwa: bob:*HASH, in eine Textdatei auf Ihrem lokalen Computer mit dem Namen „hash.txt“.

Was ist die Benutzer-/Hash-Kombinationszeichenfolge?

Jetzt müssen wir das Passwort knacken! Versuchen wir es John der Ripper dagegen mit: „john hash.txt„Wie lautet das Passwort des Benutzers, den wir gefunden haben?

Genial. Die Wiederverwendung von Passwörtern ist nicht nur extrem gefährlich, sondern auch extrem verbreitet. Wie hoch ist die Wahrscheinlichkeit, dass dieser Benutzer sein Passwort für einen anderen Dienst wiederverwendet hat?

Was ist der Inhalt von MySQL.txt

Video-Komplettlösung

Über den Autor

Ich erstelle Notizen zur Cybersicherheit, Notizen zum digitalen Marketing und Online-Kurse. Ich biete auch Beratung zum digitalen Marketing an, einschließlich, aber nicht beschränkt auf SEO, Google- und Meta-Anzeigen und CRM-Verwaltung.

Artikel anzeigen