Archive for Oktober, 2007

Joxean Koret über Oracle Database Vault: Design Failures

Montag, Oktober 29th, 2007

Joxean Koret hat ein Whitepaper zum Thema Design Fehler in Oracle Database Vault veröffentlicht.

Joxean erklärt verschiedene Möglichkeiten, Oracle Database Vault (DBV) auf Betriebssystemebene / Dateisystemebene (export, modifzierte Bibliotheken) zu umgehen und sieht dies als Design Fehler von DBV. Meines Wissens war es nie ein Ziel von DBV, die Datenbank von OS-Ebene zu schützen, auch wenn das manchmal von Oracle Sales anders verkauft wird.

DBV ist ein Framework, mit dem man zusammen mit Komponenten wie TDE, ASO, …, ein sichereres Datenbank System aufbauen kann. Dazu muss natürlich die gesamte Architektur wie z.B. Backup/Recovery, Anwendungen mit betrachtet werden.

Inguma – Freies Oracle Penetration Toolkit von Joxean Koret

Samstag, Oktober 20th, 2007

Ich bin gerade zurück von der kleinen, aber feinen Security Konferenz 0sec in Bern, auf der ich zu dem Thema „Latest Trends in Oracle Security“ gesprochen habe.

Joxean Koret hat die Version 0.05 seines freien Penetration Toolkit  „Inguma“ veröffentlicht. Der Name Inguma kommt von dem baskischen Gott der Träume. Wer da wohl schon träumen soll… DBA’s sicherlich nicht…

Inguma, geschrieben in Phython, unterstützt verschiedene Systeme (z.B.. Oracle, SQL Server, SSH, Firewalls, …). Die folgenden Features von Inguma sind Oracle spezifisch:

* Exploit für die Lücke in SYS.LT.FINDRICSET (Oracle CPU Okt. 2007).
* Modul „bruteora“ hinzugefügt, um Oracle Server zu bruteforcen.
* Tool, um MD5 Hashes via Rainbow-Tables zu knacken.
* Modul „sidguess“, um die SID einer Oracle Datenbank zu erraten.
* Password Cracker für Oracle11g.
* Erweiterung des bisherigen Oracle PL/SQL Fuzzer.

Hier ist ein Screenshot von Inguma unter Backtrack 2.

Inguma Screenshot 1

Gut gemacht Joxean.

Oracle CPU Oktober 2007 – 14 Fehler von Red-Database-Security gefixt (updated)

Dienstag, Oktober 16th, 2007

Oracle hat gerade den Critical Patch Update für Oktober veröffentlicht. Es wurden insgesamt 51 Fehler in verschiedenen Produkten korrigiert. In der Datenbank werden insgesamt 27 Lücken beseitigt.

14 der Fehler wurden von Red-Database-Security gemeldet. Wie üblich sind die Fehler von den üblichen Verdächtigungen (David, Esteban, Joxean und mir). Aus Österreich hat Johannes Greil Fehler gemeldet. Johannes hatte schon 2005 Fehler in Oracle Portal gemeldet.

Oracle korrigiert insgesamt 11 Fehler im Workspace Manager, 3 in Oracle Text und 3 in Oracle Spatial. Weiterhin werden Fehler in Advanced Queueing, XMLDB, OID und ASO) korrigiert. Auch gibt es 2 Fehler in Import/Export. Der Import Fehler (von mir letztes Jahr gemeldet) ist der kritischste Fehler mit einen Rating von 6.5 (CVSS 2.0 rating) und betrifft alle Versionen von Oracle. Einige von unseren Fehler (Database Vault (DB21) und Enterprise Manager (EM01)) sind remote ohne Benutzerkennung ausnutzbar.

Die Fehler in der Datenbank (AFAIK) sind SQL Injection (Workspace Manager, Spatial), Buffer Overflows, Privilegien Eskalation.

Interessant ist auch, dass Joxean Koret zumindestens einen seiner Fehler an Tipping Point verkauft hat („Joxean Koret working with Tipping Point’s Zero Day Initiative“). Für diejenigen, die Tipping Point nicht kennen:

Tipping Point ist ein Hersteller von IDS/IPS Systemen, die Sicherheitslücken in bekannteren Produkten (Oracle, MS, SAP, …) aufkaufen und diese dann, bevor die Patches erhältlich sind, in ihr IDS/IPS integrieren. Ein großer Schutz ist jedoch nicht zu erwarten, wenn 95% der Fehler nicht entdeckt werden….

Mehr Details bald.

SYSDBA Backdoor

Montag, Oktober 15th, 2007

Paul Wright hat ein Whitepaper „Oracle SYSDBA Backdoor“ veröffentlicht. Dort zeigt Paul, wie man einen neu angelegten SYSDBA Account so versteckt, dass er nicht mehr in den Oracle Standardviews angezeigt wird. Dazu ist es zwar notwendig, in der Oracle Binärdatei die  View GV$PWFILE zu patchen. Sobald dies aber getan ist, wird nach dem Neustart der Datenbank der bisher angezeigte SYSDBA Account nicht mehr in der View v$pwfile_users angezeigt. Lediglich die View X$KZSRT, die jedoch nur als SYSDBA verwendet werden kann, zeigt noch den versteckten Benutzer.

Paul verwendet hier einige der Ideen (View verändern, Binärdatei patchen), die ich letztes Jahr auf der BlackHat 2006 in meinem Vortrag „Oracle Rootkits 2.0“ gezeigt habe. Die Idee SYSDBA Benutzer zu verstecken ist sehr interessant. Das größte Problem ist wahrscheinlich das Patchen der Binärdateien, da das Herunterfahren einer Produktionsdatenbank recht auffällig ist.

Paul empfiehlt (wie ich bereits letztes Jahr) in kritischen Umgebungen Checksummen-Programme wie Tripwire, um Änderungen auf Betriebssystemebene anzuzeigen.

Pete empfiehlt den Parameter „remote_login_passwordfile = NONE“ zu setzen, was oftmals jedoch nicht möglich ist. Den wohl einfachsten Test, welche SYSDBA Benutzer existieren bzw. ob bereits solch eine Hintertür installiert ist, kann man unter Unix mit dem strings Kommando machen:

Oracle Oracle Password File

Interessant ist hierbei noch, dass der Benutzer INTERNAL auf in Oracle 11g immer noch existiert. Offiziel war dieser ja mit Oracle 9i „verschwunden“.

Oracle CPU Oktober 2007 – Vorankündigung

Sonntag, Oktober 14th, 2007

Nächste Woche Dienstag ist es wieder so weit. Oracle veröffentlicht den letzten Oracle CPU Oktober 2007 in diesem Jahr. Diesmal werden insgesamt 51 Sicherheitsfehler in den verschiedenen Oracle Produkten korrigiert. Davon betreffen 27 der 51 Fehler die Oracle Datenbank. 5 davon sind remote ausnutzbar, aber zumindestens unsere Findings nicht besonders kritisch.

Am Freitag hat Oracle uns bereits mitgeteilt, dass diesmal (wahrscheinlich) 14 unserer Fehler in der Datenbank korrigiert werden, darunter auch einige die Remote ausnutzbar sind. Damit sind mehr als 50% aller gemeldeten Fehler in der DB von Red-Database-Security gefunden worden. Auch einer der Fehler von uns in Database Vault wird korrigiert.

Mehr Informationen gibt es nach der Analyse bzw. auf den beiden Seminaren der Oracle University : „Hacking für Oracle DBA’s

Sicherheitslücken in Oracle Database Vault

Donnerstag, Oktober 4th, 2007

Sven Vetter schreibt in seinem Technik-Blog, dass es per dynamischen SQL sehr einfach möglich sei, Database Vault auszutricksen. Das wundert mich nicht, da wir schon vor Monaten Sicherheitslücken in Database Vault an Oracle secalert gemeldet haben. Nachträglich solch ein Konzept einzuführen, ist natürlich nicht einfach und vor allem nie fehlerfrei. Die aktuelle Version dient wohl eher dazu, Know-How aufzubauen und vor allem die internen Prozesse, wie z.B. die DBAs arbeiten, an das Produkt anzupassen.

Vielleicht erfahren wir von Sven seinem Vortrag auf der DOAG mehr über diese Lücken.

Weiterhin schreibt Sven, dass „Es sind zu viele Security Lücken vorhanden, die das Lesen und Ändern von vertraulichen Daten als Datenbank- oder Betriebssystemadministrator zulassen – genau das aber verspricht dieses Produkt zu unterbinden„.
Dies ist so nicht richtig. Oracle schreibt dazu: „Oracle Database Vault can prevent highly privileged users, including powerful application DBAs and others, from accessing sensitive applications and data in Oracle databases outside their authorized responsibilities„. Oracle spricht nicht von Betriebssystemadministratoren.

Database Vault wurde NUR dazu entworfen, einen Benutzer mit DBA Berechtigungen OHNE Betriebssystemzugriff (direkt bzw. indirekt (z.B. dbms_scheduler)) einzuschränken (z.B. select any table oder Passwort Änderungen). Sobald man Betriebssystemzugriff (erlangt) hat, ist es trivial, Database Vault auszutricksen/ zu umgehen, da man beispielsweise als Betriebssystembenutzer Database Vault einfach ausschalten kann (wird für das Einspielen der CPUs benötigt). Dies ist aber keine Lücke, sondern Teil der Architektur von Database Vault.

Oracle SQL Injection Cheat Sheet

Dienstag, Oktober 2nd, 2007

Die folgende Url enthält ein cheat sheet für Oracle SQL Injection. Nicht vollständig , einige statements sind zu kompliziert. (z.B. SELECT table_name FROM all_tables WHERE TABLESPACE_NAME=’USERS‘ or SELECT username, FROM all_users UNION SELECT name, password FROM sys.user$, better: SELECT name, password FROM sys.user$ where type#=1).

THC veröffentlicht den Passwort Cracker „OrakelCrackert“ für Oracle 11g

Dienstag, Oktober 2nd, 2007

Van Hauser von THC hat mich heute bei einer Tasse Tee darauf aufmerksam gemacht, dass vonjeek/THC am 26. September einen Password Cracker für Oracle 11g auf der THC Webseite namens OrakelCrackert veröffentlicht hat. OrakelCrackert überprüft ungefähr 400.000 SHA-1 Passworte/Seckunde auf meinem 2 GHz Core2Duo und ist damit genauso schnell wie checkpwd 2.0, das nächste Woche veröffentlicht wird.

THC Orakelcrackert 1.00


An dieser Stelle stand bis vor kurzem, dass THCGuesser die Passwortliste von checkpwd verwendet. Dies ist nicht richtig. An dieser Stelle nochmal Entschuldigung für diese falsche Behauptung.

Weiterhin richtig ist und bleibt, dass das „Ausleihen“ von Textdateien öfters praktiziert wird, z.B. bei der von mir zusammengestellten Liste von Standard SIDs (z.B. von sidguesser von Cqure bzw. ora-getsid von NGS Software oder dem russischen Tool coss). Diese Tools verwenden meine Liste, die auch meine privaten SIDs meiner Testsysteme enthalten ….

Neue Version von Sidguess

Dienstag, Oktober 2nd, 2007

Gestern habe ich eine aktualisierte Version von sidguess für Windows und MacOS hochgeladen. In dieser Version (1.0.2) funktioniert nun der Brute Force Modus zum Erraten der SIDs korrect.