19 Nisan 2012 Perşembe

Failed to load the OCI library: no such file to load --oci8

Backtrack üzerindeki Metasploit de oracle ile ilgili bir auxiliary modülünü çalıştırırken “Failed to load the OCI library: no such file to load  --oci8” şeklinde bir hatayla karşılaşıldığında yapılacak işlemler şunlardır:

İlk olarak oracle instant client ile ilgili kurulumlar yapılmalıdır.
*Instant Client Package - Basic
*Instant Client Package - SDK (devel)
*Instant Client Package - SQL*Plus  **not needed for metasploit but useful to have

Tüm uygulamalara oracle sitesi üzerinden erişebilir.
http://www.oracle.com/technetwork/topics/linuxsoft-082809.html

Ardından bu uygulamaları kuracağımız dizin oluşturulur.

Mkdir /opt/oracle

Ardından indirilen tüm dosyalar açılır.

Cd /opt/oracle

/opt/oracle/instantclient_10_2#  Unzip /opt/oracle/ basic-10.2.0.5.0-linux.zip
/opt/oracle/instantclient_10_2#  Unzip /opt/oracle/ sdk-10.2.0.5.0-linux.zip
/opt/oracle/instantclient_10_2#  Unzip /opt/oracle/ sqlplus-10.2.0.5.0-linux.zip

Link oluşturulur.

/opt/oracle/instantclient_10_2# ln -s libclntsh.so.10.1 libclntsh.so

Şimdi gerekli environment(çevresel) değişkenleri ayarlayacağız. Değişkenlerin her açılışta tekrar oluşması için bashrc dosyası içine kaydedeceğiz.

vim /root/.bashrc

Dosyanın en altına şu değişkenler eklenir.

export PATH=$PATH:/opt/oracle/instantclient_10_2
export SQLPATH=/opt/oracle/instantclient_10_2
export TNS_ADMIN=/opt/oracle/instantclient_10_2
export LD_LIBRARY_PATH=/opt/oracle/instantclient_10_2
export ORACLE_HOME=/opt/oracle/instantclient_10_2

Ardından ruby için gerekli oci8 driverını kuracağız.

http://rubyforge.org/frs/download.php/65896/ruby-oci8-2.0.3.tar.gz

Dosyayı indirdikten sonra sırasıyla aşağıdaki komutlar çalıştırılır.

tar xvzf ruby-oci8-2.0.3.tar.gz
cd ruby-oci8-2.0.3/
env
LD_LIBRARY_PATH=/opt/oracle/instantclient_10_2/
export LD_LIBRARY_PATH
env | grep LD_LIBRARY_PATH
make
sudo make install


Ancak henüz hala aynı hatayı almaya devam edeceğiz.

    root@bt:~# irb 
    irb(main):001:0> require 'oci8' 
    LoadError: no such file to load -- oci8lib_191 
        from /usr/local/lib/site_ruby/1.9.2/oci8.rb:40:in `require' 
        from /usr/local/lib/site_ruby/1.9.2/oci8.rb:40:in `<top (required)>' 
        from (irb):1:in `require' 
        from (irb):1 
        from /usr/bin/irb:12:in `<main>' 

Görüldüğü gibi oci8lib_191 kütüphanesi bulunamıyor. Bunun için /usr/local/lib/site_ruby/1.9.2/oci8.rb dosyasında bazı değişiklikler yapacağız. Sorun ruby versiyonun istediği oci driverı ile ilgili. Bizim ruby versiyonumuz 1.9.2 olduğundan ve elimizde oci8lib_192 driverı bulunduğundan bunu açtığımız dosyada belirtmemiz gerekiyor.

Normalde oci8.rb dosyasında içerik aşağıdaki gibi:

Case RUBY_VERSION
When /^1\.9/
 Require ‘oci8lib_191’

Biz burada “oci8lib_191” yerine “oci8lib_192” yazacağız.
Oci8lib_192 kütüphanesinin yeri: /usr/local/lib/site_ruby/1.9.2/i486-linux

Şimdi sırada bu kütüphanenin yerini metasploite tanımlamak var. Metasploit açıldığında environment variables ları aldığı bir dosya bulunmaktadır. Dosya setenv.sh ‘dır.
Setenv.sh yeri: /opt/metasploit/scripts

Vim setenv.sh ile dosya açılır. Dosyanın içindeki RUBYLIB ruby kütüphanelerinin yerlerini göstermektedir. Buraya bizim oci8lib_192 kütüphanesinin bulunduğu pathi vereceğiz.

“:/usr/local/lib/site_ruby/1.9.2/:/usr/local/lib/site_ruby/1.9.2/i486-linux”

Yukarıdaki değerler RUBYLIB alanına eklenir.

Bu işlemlerin ardından artık oracle ile ilgili auxiliaryleri çalıştırabileceğiz.
 

======================================================================

IF YOU LIKE THIS ARTICLE PLEASE CLICK ADVERTISEMENTS

MAKALEYİ BEĞENDİYSENİZ LÜTFEN SİTEDEKİ İLANLARI TIKLAYINIZ.

======================================================================


Hiç yorum yok:

Yorum Gönder