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.
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).