1521 - Oracle TNS

Einführung

Oracle TNS (Transparent Network Substrate) ist ein Kommunikationsprotokoll, das Oracle-Datenbanken verwenden, um Netzwerkverbindungen von Clients entgegenzunehmen und weiterzuleiten. Es gehört zu Oracle Net Services.

Auf jedem Oracle-Datenbankserver läuft in der Regel ein sogenannter TNS Listener. Dieser Listener ist ein separater Prozess, der auf eingehende Verbindungen lauscht – standardmäßig auf TCP-Port 1521. Sobald eine Verbindung eingeht, leitet er sie an die richtige Datenbankinstanz weiter.


Instanzen und SID

Ein Oracle-Datenbankserver kann mehrere Instanzen gleichzeitig betreiben. Jede Instanz ist ein eigener Satz von Prozessen und Speicherstrukturen, der mit einer bestimmten Datenbankdatei arbeitet.

Zur eindeutigen Identifikation verwendet Oracle den SID (System Identifier) – das ist der eindeutige Name einer Instanz auf dem Server.

Wenn sich ein Client verbinden möchte, muss er den Host, den Port und den SID kennen. Nur so weiß der Listener, welche Instanz gemeint ist.

Beispiel für eine Verbindung:

sqlplus scott/tiger@//10.0.0.1:1521/XE
#       Username/Password@//IP:Port/SID

Oracle TNS Enumeration & Exploitation

Port Scan

Nmap

Ziel: Prüfen, ob ein Oracle Listener läuft und welcher Versionstyp verwendet wird (z. B. 11.2.0.2.0).

SID Enumeration

Nmap-Skript

Erkennt installierte Instanzen wie z. B. XE, was für Login erforderlich ist.

Benutzer/Passwort Enumeration mit ODAT

Beobachtungen:

  • Konten wie mdsys, outln sind gesperrt

  • Gültige Kombination scott/tiger gefunden → Weiterverwendung möglich

Verbindungsaufbau mit SQL*Plus

Bei Shared-Library-Fehler:

Rechte- und Tabellen-Check

Ziel: Prüfen, ob der Benutzer Zugriff auf Tabellen hat und welche Rollen aktiv sind. Rollen wie DBA wären kritisch.

Login als SYSDBA (Privilege Escalation)

SQL-Ausgabe zeigt mögliche Übernahme der Datenbank mit Rollen wie DBA, SYS, etc.

Hash Extraction für Offline-Cracking

Mit Hashcat offline knacken:

File Upload via ODAT

Ergebnis testen:

Ausgabe sollte enthalten:

RCE via DBMS_SCHEDULER

Ziel: Reverse Shell triggern über das SCHEDULER-Subsystem.

Fazit

Die Analyse zeigt: Standardkonfigurationen und veraltete Versionen in Oracle-Systemen bieten vielfältige Angriffsflächen. Tools wie ODAT in Kombination mit SQL*Plus ermöglichen es, Oracle-Datenbanken systematisch zu untersuchen und ggf. zu kompromittieren. Entscheidend ist dabei die Kombination aus SID-Bruteforce, Credential-Angriffen, Rechteauswertung und kreativer Ausnutzung von Features wie Dateioperationen oder Zeitsteuerungssystemen (SCHEDULER).

Last updated