控制檯安全性破解

sqiutz發表於2010-03-04

常在河邊走,哪有不溼鞋,WebSphere管理中最讓人無語的是把密碼忘記了。管理控制檯也好,資料來源的密碼也好,配置的時候為了滿足安全管理的要求設定了8位以上、大小寫皆有、毫無意義的密碼,現在兩眼一抹黑,怎麼都試不出來。怎麼辦?重灌?生產環境好不好。其實不用著急,IBM還是給我們留了一條後路的。

管理控制檯密碼遺忘有兩種補救措施:

方法一:命令列——從$WAS_HOME/profiles/xxx 概要檔名/bin目錄下,執行 wsadmin -conntype NONE 。當wsadmin的命令列視窗出現之後,執行 securityoff 。上述操作在應用伺服器啟動或停止的狀態都能發出。再次啟用WAS時,就是停用管理安全性的狀態了。

方法二:修改配置檔案——修改$WAS_HOME\config\cells\xxx 下的security.xml,把第一個enable改成false就取消安全性了。

詳細說明http://www-01.ibm.com/support/docview.wss?uid=swg21105430

以上兩種方法是禁用了全域性安全性(global security),最後別忘了設定新的密碼然後再次啟用。

下文是講述如何“破解”出WebSphere中其它密碼的方法:

轉自Sunny’s 部落格

http://www.sunnyblog.info/blog/archives/3149

WebSphere會在配置檔案(一堆的XML)當中存放各種密碼(包括資料來源、認證別名等等),例如在$WAS_Profile_HOME\config\cells\security.xml檔案裡面有類似”<authDataEntries xmi:id=”JAASAuthData_1238489272531″ alias=”myNode01/oracleDBA” userId=”oraadmin” password=”{xor}bm1sa2pp”/>”,就是存放認證別名為oracleDBA的使用者名稱和密碼。

可以看到在這裡密碼被重新編碼(encode)了,編碼的方式是XOR(eXclusive OR異或),很明顯這種並不是一種強加密的演算法,僅僅是一種編碼而已,所以準確來說WebSphere為了避免密碼被明文記錄,只是很簡單地“編碼”(encode)而不是“加密”(encrypt)。

萬一閣下一個不小心忘記了存放在WebSphere裡面的密碼,但是又想恢復過來的話,WebSphere這種只是編碼而不是加密的存放密碼形式,就幫助了你了。當然如果你想幹壞事的話,WebSphere也算是給自己留下了一個“後門”了 -_-b。嘿嘿嘿,不要以為IBM那幫老爺子就是這麼懶,如果閣下真的是要對存放在WebSphere配置檔案裡面的密碼要加密的話(對於廣大客戶肯定是有這個訴求的),其實IBM也提供了一種自定義加密演算法的外掛形式去解決這個問題的,詳情可以參考這個連結,在這裡就不對這個問題進行展開討論了。

好了,現在就對各個版本的WAS的密碼編碼和反編碼進行討論:

WAS 5.X的編碼:

> cd $WAS_INSTALL_DIR/lib
> ../java/bin/java -cp securityimpl.jar:iwsorb.jar com.ibm.ws.security.util.PasswordEncoder 123456

WAS 5.X的反編碼:

> cd $WAS_INSTALL_DIR/lib
> ../java/bin/java -cp securityimpl.jar:iwsorb.jar com.ibm.ws.security.util.PasswordDecoder {xor}bm1sa2pp

WAS 6.0的編碼:

> cd $WAS_INSTALL_DIR/lib
> ../java/bin/java -cp securityimpl.jar:iwsorb.jar::ras.jar:wsexception.jar:bootstrap.jar:emf.jar:ffdc.jar com.ibm.ws.security.util.PasswordEncoder 123456

WAS 6.0的反編碼:

> cd $WAS_INSTALL_DIR/lib
> ../java/bin/java -cp securityimpl.jar:iwsorb.jar::ras.jar:wsexception.jar:bootstrap.jar:emf.jar:ffdc.jar com.ibm.ws.security.util.PasswordDecoder {xor}bm1sa2pp

WAS 6.1的編碼:

> cd $WAS_INSTALL_DIR/bin\ProfileManagement\plugins\com.ibm.websphere.v61_6.1.200
java -cp ws_runtime.jar com.ibm.ws.security.util.PasswordEncoder 123456

WAS 6.1的反編碼:

> cd $WAS_INSTALL_DIR/bin\ProfileManagement\plugins\com.ibm.websphere.v61_6.1.200
> java -cp ws_runtime.jar com.ibm.ws.security.util.PasswordDecoder  {xor}bm1sa2pp

以上內容參考轉載自robertmaldon

當然,如果你覺得很麻煩的話,其實也有一個網站直接幫你解碼:WebSphere Password Decoder

 

 

相關文章