身為一個專職的前滲透測試工程師,測試過數百個網站、系統與服務。
根本我個人非正式不精準的統計
挖掘出來的嚴重風險與高風險,其中有三分之二的類型,都是屬於下列三個類型之一
1.SQL Injection
2.XSS
3.弱密碼/預設密碼
所以我想表達的時,預設密碼是相當嚴重且常見的風險之一
當我們架設/或是申請一個新的服務時,對於密碼設定的情況大概有幾種
第一: 於安裝時必須自行設定密碼。姑且不論有無要求密碼強度,至少這種方式不存在預設密碼的問題
第二: 安裝時會提供預設密碼,但第一次登入時會要求變更密碼。這種方式雖然看似與第一種相當,但實際上還是可能發生正常使用者沒有登入的情況,所以安全性略輸第一項
第三: 安裝時提供預設密碼,但服務提供可以簡易更改密碼的功能。這個可能是過去最常見的一種方式
第四: 安裝時提供預設密碼,但服務並沒有提供可以簡單更改密碼的功能,也就是要改密碼稍微有點麻煩。很不幸的Wazuh雖然是一個強大好用的開源工具,但它的變更密碼屬於此種,所以要改密碼是有一點點小麻煩的QQ
第五: 最慘的就是這個豬大腸,阿,不是…. 最不安全的就是服務架設後根本沒有提供身分驗證的機制,也就是不需要帳密登入,像早期ELK。然後有的要啟動身分驗證機制可能還很難操作XD
藍隊守則小提醒
1.服務架設後,請變更預設密碼
2.請不要使用弱密碼
3.帳號跟密碼請不要一樣
其實官方有提供變更密碼的教學
我們可以跟著教學做一次
(要記得,我們是用容器部署的方式)
https://documentation.wazuh.com/4.3/deployment-options/docker/wazuh-container.html#change-pwd-existing-usr
[步驟一]
首先我們先停止容器
docker-compose stop
[步驟二]
接著透過以下指令,來產生新密碼的hash
docker run --rm -ti wazuh/wazuh-indexer:4.3.11 bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/hash.sh
例如我輸入
newPassword
會得到一組hash
$2y$12$Nx7zJfXVONMVUDQ8Qp2GQuOjYsvGFORt9uq/QhrQcngfXq0B9hRZ6
[步驟三]
/single-node/config/wazuh_indexer/internal_users.yml
我們要去修改wazuh_indexer容器內的internal_users.yml的檔案
把admin的密碼換成我們剛剛產生的新hash
(保險起見, 你也可以把舊的hash先複製下來留著)
[步驟四]
接著我們準備要啟動容器
啟動之前,要修改docker-compose.yml裡面的內容
把INDEXER_PASSWORD的值都改成我們剛剛的新密碼
[步驟五]
啟動容器
docker-compose start
[步驟六]
進入indexer容器裡面
docker exec -it single-node_wazuh.indexer_1 bash
[步驟七]
依序執行下列的指令
設定環境變數
export INSTALLATION_DIR=/usr/share/wazuh-indexer
CACERT=$INSTALLATION_DIR/certs/root-ca.pem
KEY=$INSTALLATION_DIR/certs/admin-key.pem
CERT=$INSTALLATION_DIR/certs/admin.pem
export JAVA_HOME=/usr/share/wazuh-indexer/jdk
[步驟八]
執行securityadmin.sh這個腳本來apply changes
bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/securityadmin.sh -cd /usr/share/wazuh-indexer/opensearch-security/ -nhnv -cacert $CACERT -cert $CERT -key $KEY -p 9200 -icl
完成後的畫面如下
[步驟九]
完成了,開啟你的Wazuh Dashboard
登入應該就是使用新密碼了
接下來..
大家可能想說就算換密碼沒有這麼簡單
官方也都有提供手把手步驟了,為什麼還需要特別拉一篇出來寫呢
既然是乾坤燒鵝,當然是內有乾坤!
其實之前發生過換密碼不成功的問題
當然每個人不成功的原因或是BUG可能不同
我這邊提一下幾個注意的事項跟可能性
如果依照上述步驟換密碼沒成功的話
可以確認看看下面列出來的內容有沒有可能是你失敗的原因
如果步驟八
bash /usr/share/wazuh-indexer/plugins/opensearch-security/tools/securityadmin.sh -cd /usr/share/wazuh-indexer/opensearch-security/ -nhnv -cacert $CACERT -cert $CERT -key $KEY -p 9200 -icl
執行該指令的時候可能會有遇到問題
首先,如果是看到甚麼XXX too large的問題,疑似跟memory有關的
把docker-compose.yml裡面的
先把容器停止,修改一下下面內容,把值調大就可以了
如果是有出現甚麼
Not a valid protocol version: This is not an HTTP port
或是
Could not find certificate file /usr/share/wazuh-indexer/config/certs/root-ca.pem
或是
ERR: An unexpected RuntimeException occured: error while performing request
那很高的機率是你版本錯誤
你目前使用的Wazuh的版本,跟你照著官網或是別人教學作的方式是不同的版本
他不同版本的路徑不同所以指令也會不同
找到對應的版本應該就可以了
如果還是有問題
也可以再檢查docker-compose裡面的變數
或容器內的變數