воскресенье, 27 ноября 2011 г.
Восстановление пароля weblogic
Для безопасного хранения паролей в Weblogic server предусмотрено их шифрование с помощью алгоритмов 3DES или AES. Шифрованные пароли и логины хранятся в конфигурационных файлах домена (config.xml), конфигурационных файлах источников данных ($DOMAIN_HOME/config/jdbc/Datasource_name.xml ), в файле для запуска серверов без ввода пароля (boot.properties) и т.д. Ключ хранится в файле SerializedSystemIni.dat
Зашифрованные этими ключом данные при наличии доступа к ключу шифрования могут быть расшифрованы.
под катом - маленький класс, позволяющий это сделать.
На вход утилите требуются путь к домену и зашифрованный пароль. На выходе - дешифрованный пароль.
перед запуском необходимо добавить в переменную CLASSPATH директорию, где находится скомпилированный класс и путь к файлу weblogic.jar
например, вот так:
import weblogic.security.internal.SerializedSystemIni;
import weblogic.security.internal.encryption.ClearOrEncryptedService;
import weblogic.security.internal.encryption.EncryptionService;
import java.io.File;
public class DecryptPass
{
static EncryptionService es = null;
static ClearOrEncryptedService ces = null;
public static void main(String args[]) throws Exception
{
String passwd,pth = null;
if (args.length == 2) {
passwd = args[1];
pth = args[0];
System.out.println(
decryptPass(passwd,pth)
);
}
else
System.err.println("Usage: java DecryptPass path_to_domain_dir encripyed_password");
}
private static String decryptPass(String passwd, String pth) {
passwd = passwd.replace("\\", "");
es = SerializedSystemIni.getEncryptionService(
new File(pth).getAbsolutePath()
);
if(es == null)
{
return "Error creation encryption service";
}
ces = new ClearOrEncryptedService(es);
return "Password: " + ces.decrypt(passwd);
}
}
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий