Öntanımlı SID Değerine Sahip Oracle Veritabanlarının Tespit Edilmesi

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Veritabanlarına giriş için SID değeri kullanılmaktadır. SID (System Identifier) değeri her veritabanı için tekdir. SID değerinin varsayılan olarak bırakılması saldırganları hedeflerine bir adım daha yaklaştıran önemli bir açıklıktır.

Amaç:

Oracle veritabanlarında kullanılan öntanımlı SID değerlerinin tespit edilmesi.

Araçlar:

  • Nmap
  • Metasploit

Lab Senaryosu 1 (nmap; oracle-sid-brute: parametresiz):

Nmap uygulaması ile öntanımlı SID değerleri tespit edilecektir. Nmap kendi bünyesinde tanımlı olan tarama biçimlerinin yanında scriptleri(özelleştirilmiş kod blokları) sayesinde daha geniş ve esnek bir tarama imkanı sunmaktadır. Bu uygulamada kullanılacak olan script “oracle-sid-brute” scriptidir.

root@bt:~# nmap --script=oracle-sid-brute 192.168.1.23 -p 1521
Starting Nmap 6.01 ( http://nmap.org ) at 2014-08-31 15:49 EEST
Nmap scan report for 192.168.1.23
Host is up (0.00017s latency).
PORT 	STATE SERVICE
1521/tcp open  oracle
| oracle-sid-brute:
|_  ORACLE
MAC Address: 00:0C:29:CC:F9:01 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 1.06 seconds

Görüldüğü gibi verilen IP adresinde bulunan Oracle veritabanında bir adet öntanımlı SID değeri tespit edilmiştir. Eğer bu veritabanında bir de kullanıcılar ve parolaları öntanımlı olarak bırakıldı ise veritabanı tamamen tehlike altında demektir. Burada nmap scripti parametresiz olarak kullanılmıştır. Nmap tespit edilen öntanımlı SID değerlerini denemektedir, bu değerler ülkeden ülkeye farklılıklar göstermektedir. Bu yüzden kendinize ait bir SID değeri sözlüğünüzün bulunması testin daha gerçekçi olması açısından önemlidir.

Lab Senaryosu 2 (nmap; oracle-sid-brute: parametresiz):

Nmap uygulamasının parametrelerini değiştirilen scriptler ile birlikte kullanmak daha detaylı ve gerçekçi taramalar yapılmasını sağlar.

root@bt:~# nmap --script=oracle-sid-brute --script-args=oraclesids=/root/Desktop/default-sid.txt 192.168.1.23 -p 1521 
Starting Nmap 6.01 ( http://nmap.org ) at 2014-08-31 16:17 EEST
Nmap scan report for 192.168.1.23
Host is up (0.00027s latency).
PORT 	STATE SERVICE
1521/tcp open  oracle
| oracle-sid-brute:
|_  ORACLE
MAC Address: 00:0C:29:CC:F9:01 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.90 seconds

Görüldüğü üzere yine öntanımlı SID değeri tespit edilmiş oldu.

Lab Senaryosu 3 (Metasploit: sid_brute):

Metasploit framework içerisinde oracle veritabanlarına yönelik birçok denetleme modülleri bulunmaktadır. Burada kullanılacak modülün adı ve dizini:

auxiliary/scanner/oracle/sid_brute

Modül sisteme tanıtıldıktan sonra “show options” komutu ile program seçenekleri görüntülenir.

msf  auxiliary(sid_brute) > show options 
Module options (auxiliary/scanner/oracle/sid_brute):

  Name     	Current Setting   	Required  Description
  --------    ---------------      -----------------------------------------------------------
  BRUTEFORCE_SPEED  5               yes   	How fast to bruteforce, from 0 to 5
  RHOSTS                                  yes   	The target address range or CIDR identifier
  RPORT         	1521               yes   	The target port
  SID                                    no    	A specific SID to attempt.
  SID_FILE       /opt/metasploit/msf3/data/wordlists/sid.txt  no  File containing instance names, one per line
  STOP_ON_SUCCESS   false      	yes   	Stop guessing when a credential works for a host
  THREADS       	1                   yes   	The number of concurrent threads
  VERBOSE       	true                 yes   	Whether to print output for all attempts

Yine bu modülün seçeneklerinde SID listesi varsayılan olarak düzenlenmiştir, fakat istenildiği durumlarda değiştirilebilir. Yine her modül kullanımında aynı olmak üzere “Required” sekmesi altında bulunan ve “Yes” olarak işaretlenmiş olan değerler hedef sisteme göre yeniden girilmesi zorunlu değerlerdir. Gerekli alanlar doldurulduktan sonra modül “run” veya “exploit” komutu ile çalıştırılır. Örnek bir modül çıktısı aşağıda paylaşılmıştır.

msf  auxiliary(sid_brute) > run

[*] Checking 571 SIDs against 192.168.1.23:1521
[+] 192.168.1.23:1521 Oracle - 'ORACLE' is valid
[+] 192.168.1.23:1521 Oracle - 'CLREXTPROC' is valid
[*] Scanned 1 of 3 hosts (033% complete)
[*] Checking 571 SIDs against 192.168.1.24:1521
[-] 192.168.1.24:1521 Oracle - unable to connect to a TNS listener
[*] Scanned 2 of 3 hosts (066% complete)
[*] Checking 571 SIDs against 192.168.1.25:1521
[+] 192.168.1.25:1521 Oracle - 'PLSEXTPROC' is valid
[*] Scanned 3 of 3 hosts (100% complete)
[*] Auxiliary module execution completed

Görüldüğü üzere üç adet öntanımlı SID değeri bulunmuştur.