adsense

16.07.2014

Weblogic Password Decryption

Weblogic domain ve domain resource (data source, node manager, managed server) kurulumları yaparken şifrelerimizi genellikle yazılı olarak bir yere kaydetmeyiz ki şirket içi güvenlik için de bu oldukça önemlidir. Domain kurulumunda -özellikle JDBC resource kurulumlarında DB şifrelerini- şifrelerimizi bir kerelik girer ve sonra tekrar kullanma ihtiyacımız olmadığı için unuturuz.

Ancak gün gelir de Weblogic upgrade i yapmak istersek ya da aynı şifreye başka yerde ihtiyaç duyarsak hatırlamak her zaman kolay olmayabilir. Weblogic'te şifreler de encrypted halde bulunduğu için geri dönmek çok da mümkün görünmez.

Lakin bu konudan bizim gibi muzdarip başka Weblogic adminler de yok değil. Sağolsun arkadaşlar bunun için şimdilik iki yöntem geliştirmişler ve biz de paylaşmadan geçmek istemedik.

Şimdi encrypted halde bulunan şifrelerimizi nasıl decrpyt edeceğimizi kısaca anlatalım:

1. yol;
  • Öncelikle burada belirtilen adrese giriyoruz.
  • Sonrasında Weblogic Domain path imiz gidiyor ve $DOMAIN_HOME/security dizinine gidirek SerializedSystemIni.dat dosyamızı kendi bilgisayarımıza alıyoruz.

  • Elde etmek istediğimiz şifrenin encrypted halinin bulunduğu xml dosyasını da aynı şekilde kendi bilgisayarımıza alıyoruz. Örnek olarak JDBC Data Source tanımlarımıza ait xml dosyaları $DOMAIN_PATH/config/jdbc klasörü altında bulunur. Bu dizin altında ilgili JDBC xml dosyası kendi bilgisayarımıza alınır.

  • Sonrasında ilk maddede gittiğimiz adreste aşağıdaki kısımlardan bilgisayarımıza aldığımız dosyalar seçilir ve Decrypt butonuna basılır:

  • Decrpyiton işlemi sonunda No Results Yet alanında şifre nin decrypt hali görünecektir: 

2. yol;
  • İlk olarak aşağıdaki siteden indirebileceğiniz RecoverPasswd.java ve RecoverPasswd.ksh dosyalarını indirip kolayca ulaşabileceğimiz bir yere kopyalıyoruz.

http://dosya.co/46eui0zstbdi/RecoverPasswd.java.html
http://dosya.co/z0bfungaow0w/RecoverPasswd.ksh.html

RecoverPasswd.ksh

#!/bin/ksh

usage() {

print "USAGE: RecoverPasswd.ksh [domain_path]"

}

recoverPasswd() {

DOMAIN_HOME=$domainPath
print $domainPath
. $DOMAIN_HOME/bin/setDomainEnv.sh

java RecoverPasswd

}

domainPath=$1

if [[ "$domainPath" == null ]] then
    usage
    exit
else
    recoverPasswd
fi



RecoverPasswd.java

import weblogic.security.internal.BootProperties;

public class RecoverPasswd {
  public static void main(String[] args) {
    BootProperties.load("boot.properties", false);
    BootProperties bootp = BootProperties.getBootProperties();

    System.out.println(
      "Password is: [" + bootp.getTwoClient() + "]");
  }
}


  • Daha sonra $DOMAIN_HOME$/bin altındaki setDomainEnv.sh o an ki session için ". ./setDomainEnv.sh" komutu CLASSPATH'i set etmek içinile çalıştırılır. 

 

  • CLASSPATH set'lendikten sonra .java ve . ksh dosyalarının olduğu dizine geri dönülür ve önce "javac RecoverPasswd.java" ile java dosyası çalıştırılır. Bu dosya çalıştırıldıktan sonra RecoverPasswd.class isimli bir dosya oluşur. Bu dosyayı $DOMAIN_HOME dizinine kopyalanır.
  • Sonrasında ise "./RecoverPasswd.ksh $DOMAIN_HOME" komutu ile .ksh dosyası çalıştırılır ve sonuç olarak bize şifreyi verir.























Hiç yorum yok:

Yorum Gönder