# Puerto 1521: - Oracle Database

**Oracle Database** es un sistema de gestión de bases de datos relacional (RDBMS) desarrollado por Oracle Corporation. Es conocido por su alto rendimiento, escalabilidad y características avanzadas de seguridad y gestión de datos. El puerto 1521 es el puerto predeterminado utilizado por Oracle Database para aceptar conexiones de clientes mediante el protocolo Oracle Net (anteriormente conocido como SQL\*Net o Net8).

## <mark style="color:green;">Descripción de Oracle Database y el Puerto 1521</mark>

* <mark style="color:green;">**Protocolo**</mark><mark style="color:green;">:</mark> Oracle Database utiliza el protocolo Oracle Net sobre TCP/IP para la comunicación entre el cliente y el servidor. El puerto predeterminado para las conexiones de Oracle Database es el 1521.
* <mark style="color:green;">**Funcionalidad**</mark><mark style="color:green;">:</mark> Oracle Database soporta una amplia gama de funcionalidades, incluyendo transacciones ACID, integridad referencial, procedimientos almacenados, triggers, vistas, particionamiento de tablas, replicación, y herramientas avanzadas de análisis de datos.
* <mark style="color:green;">**Seguridad**</mark><mark style="color:green;">:</mark> Oracle Database proporciona múltiples capas de seguridad, como autenticación basada en roles, SSL/TLS para cifrado de tráfico, y controles de acceso detallados. Además, soporta características avanzadas como Data Redaction y Transparent Data Encryption (TDE).

## <mark style="color:green;">Relevancia en Pentesting</mark>

### <mark style="color:green;">**Importancia de Oracle Database en Pentesting**</mark><mark style="color:green;">:</mark>

* <mark style="color:green;">**Acceso No Autorizado**</mark><mark style="color:green;">:</mark> Configuraciones incorrectas de autenticación pueden permitir a los atacantes obtener acceso no autorizado a la base de datos.
* <mark style="color:green;">**Exposición de Datos**</mark><mark style="color:green;">:</mark> Las bases de datos expuestas sin cifrado pueden ser interceptadas por atacantes, exponiendo datos sensibles.
* <mark style="color:green;">**Enumeración de Objetos**</mark><mark style="color:green;">:</mark> Los pentesters pueden enumerar esquemas, tablas, y otros objetos para mapear la estructura de la base de datos y encontrar posibles vulnerabilidades.
* <mark style="color:green;">**Inyección SQL**</mark><mark style="color:green;">:</mark> Oracle Database es susceptible a inyecciones SQL si las consultas no están correctamente parametrizadas.

## <mark style="color:green;">Ejemplo de Escaneo de Oracle Database con Nmap</mark>

Para identificar servidores Oracle Database activos y recopilar información adicional sobre los servicios Oracle Database, se puede utilizar Nmap con scripts NSE específicos.

### <mark style="color:green;">**Comando Nmap**</mark>

```bash
nmap -p 1521 --script oracle-sid-brute,oracle-tns-version,oracle-tns-service-version target-ip
```

### <mark style="color:green;">**Explicación del Comando**</mark>

* `nmap`: Ejecuta el comando Nmap.
* `-p 1521`: Especifica que Nmap debe escanear el puerto 1521, el puerto predeterminado para Oracle Database.
* `--script oracle-sid-brute,oracle-tns-version,oracle-tns-service-version`: Utiliza scripts NSE para detectar configuraciones y vulnerabilidades en el servicio Oracle Database.
  * `oracle-sid-brute`: Intenta descubrir los identificadores de sistema de la base de datos (SIDs) mediante fuerza bruta.
  * `oracle-tns-version`: Recupera la versión del protocolo Oracle TNS.
  * `oracle-tns-service-version`: Recupera la versión del servicio Oracle TNS.
* `target-ip`: Especifica la dirección IP del objetivo.

## <mark style="color:green;">**Ejemplo de Salida de Nmap**</mark>

```plaintext
Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-19 00:45 UTC
Nmap scan report for 192.168.1.240
Host is up (0.0020s latency).

PORT     STATE SERVICE
1521/tcp open  oracle
| oracle-tns-version: 
|   Version: 12.1.0.2.0
|_  Message: (CONNECT_DATA=(CID=(PROGRAM=nmap)(HOST=host)(USER=nmap))(COMMAND=version))
| oracle-tns-service-version: 
|   Service Version: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
|_  Message: (CONNECT_DATA=(CID=(PROGRAM=nmap)(HOST=host)(USER=nmap))(COMMAND=service_version))
| oracle-sid-brute: 
|   Found SID: ORCL
|   Found SID: XE
|_  Statistics: Performed 1000 guesses in 20 seconds, average tps: 50

Nmap done: 1 IP address (1 host up) scanned in 10.23 seconds
```

## <mark style="color:green;">Interpretación de la Salida</mark>

* <mark style="color:green;">**Host is up**</mark><mark style="color:green;">:</mark> Indica que el sistema objetivo está en línea y responde.
* <mark style="color:green;">**1521/tcp open oracle**</mark><mark style="color:green;">:</mark> El puerto 1521 está abierto y el servicio Oracle Database está activo.
* <mark style="color:green;">**oracle-tns-version**</mark><mark style="color:green;">:</mark> Proporciona la versión del protocolo Oracle TNS.
  * <mark style="color:green;">**Version**</mark><mark style="color:green;">:</mark> `12.1.0.2.0`.
  * <mark style="color:green;">**Message**</mark><mark style="color:green;">:</mark> Mensaje de respuesta del protocolo TNS.
* <mark style="color:green;">**oracle-tns-service-version**</mark><mark style="color:green;">:</mark> Proporciona la versión del servicio Oracle Database.
  * <mark style="color:green;">**Service Version**</mark><mark style="color:green;">:</mark> `Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production`.
  * <mark style="color:green;">**Message**</mark><mark style="color:green;">:</mark> Mensaje de respuesta del protocolo TNS.
* <mark style="color:green;">**oracle-sid-brute**</mark><mark style="color:green;">:</mark> Intenta descubrir los identificadores de sistema de la base de datos (SIDs) mediante fuerza bruta.
  * <mark style="color:green;">**Found SID**</mark><mark style="color:green;">:</mark> `ORCL`, `XE`.
  * <mark style="color:green;">**Statistics**</mark><mark style="color:green;">:</mark> Estadísticas del ataque de fuerza bruta (1000 intentos en 20 segundos, promedio de 50 tps).


---

# 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://books.spartan-cybersec.com/cppj/databases-for-juniors/puerto-1521-oracle-database.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.
