iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
Security

一個人的藍隊系列 第 13

Wazuh Change Password 這個坑

  • 分享至 

  • xImage
  •  

身為一個專職的前滲透測試工程師,測試過數百個網站、系統與服務。

根本我個人非正式不精準的統計
挖掘出來的嚴重風險與高風險,其中有三分之二的類型,都是屬於下列三個類型之一
1.SQL Injection
2.XSS
3.弱密碼/預設密碼

所以我想表達的時,預設密碼是相當嚴重且常見的風險之一
當我們架設/或是申請一個新的服務時,對於密碼設定的情況大概有幾種

第一: 於安裝時必須自行設定密碼。姑且不論有無要求密碼強度,至少這種方式不存在預設密碼的問題

第二: 安裝時會提供預設密碼,但第一次登入時會要求變更密碼。這種方式雖然看似與第一種相當,但實際上還是可能發生正常使用者沒有登入的情況,所以安全性略輸第一項

第三: 安裝時提供預設密碼,但服務提供可以簡易更改密碼的功能。這個可能是過去最常見的一種方式

第四: 安裝時提供預設密碼,但服務並沒有提供可以簡單更改密碼的功能,也就是要改密碼稍微有點麻煩。很不幸的Wazuh雖然是一個強大好用的開源工具,但它的變更密碼屬於此種,所以要改密碼是有一點點小麻煩的QQ

第五: 最慘的就是這個豬大腸,阿,不是…. 最不安全的就是服務架設後根本沒有提供身分驗證的機制,也就是不需要帳密登入,像早期ELK。然後有的要啟動身分驗證機制可能還很難操作XD

藍隊守則小提醒
1.服務架設後,請變更預設密碼
2.請不要使用弱密碼
3.帳號跟密碼請不要一樣

Wazuh換密碼流程

其實官方有提供變更密碼的教學
我們可以跟著教學做一次
(要記得,我們是用容器部署的方式)
https://documentation.wazuh.com/4.3/deployment-options/docker/wazuh-container.html#change-pwd-existing-usr

[步驟一]
首先我們先停止容器

docker-compose stop

https://ithelp.ithome.com.tw/upload/images/20230928/20114110Gt2zThm5Np.png

[步驟二]
接著透過以下指令,來產生新密碼的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

https://ithelp.ithome.com.tw/upload/images/20230928/20114110K4auFFpNCM.png

[步驟三]

/single-node/config/wazuh_indexer/internal_users.yml

我們要去修改wazuh_indexer容器內的internal_users.yml的檔案
把admin的密碼換成我們剛剛產生的新hash

(保險起見, 你也可以把舊的hash先複製下來留著)

https://ithelp.ithome.com.tw/upload/images/20230928/20114110TP0n2j9pDd.png

[步驟四]
接著我們準備要啟動容器
啟動之前,要修改docker-compose.yml裡面的內容
把INDEXER_PASSWORD的值都改成我們剛剛的新密碼

https://ithelp.ithome.com.tw/upload/images/20230928/20114110pb2gAC0tax.png

https://ithelp.ithome.com.tw/upload/images/20230928/20114110MWEktKVZ9L.png

[步驟五]
啟動容器

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

完成後的畫面如下
https://ithelp.ithome.com.tw/upload/images/20230928/20114110kP7QHEsZYY.png

[步驟九]
完成了,開啟你的Wazuh Dashboard
登入應該就是使用新密碼了

Wazuh換密碼這個坑

接下來..

大家可能想說就算換密碼沒有這麼簡單
官方也都有提供手把手步驟了,為什麼還需要特別拉一篇出來寫呢

既然是乾坤燒鵝,當然是內有乾坤!

其實之前發生過換密碼不成功的問題
當然每個人不成功的原因或是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裡面的
先把容器停止,修改一下下面內容,把值調大就可以了

  • "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"

如果是有出現甚麼

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

https://ithelp.ithome.com.tw/upload/images/20230928/20114110wy6hd19AFg.png

那很高的機率是你版本錯誤
你目前使用的Wazuh的版本,跟你照著官網或是別人教學作的方式是不同的版本
他不同版本的路徑不同所以指令也會不同
找到對應的版本應該就可以了

https://ithelp.ithome.com.tw/upload/images/20230928/20114110RLPLPjwSD7.png

如果還是有問題
也可以再檢查docker-compose裡面的變數
或容器內的變數


上一篇
Wazuh Decoder與監控容器日誌(監控Mongo)
下一篇
Wazuh 整合 Telegram 告警通知
系列文
一個人的藍隊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言