Zpět na seznam článků     Číst komentáře (8)     Verze pro tisk

Útočný JavaScript (5)

Autor: .cCuMiNn.   
9.2.2011

V minulých dílech seriálu jsme se snažili získat důvěrné informace o samotném uživateli. V tomto a několika následujících dílech prozkoumáme vnitřní síť, ve které se uživatel nachází a zjistíme nějaké podrobnosti o jednotlivých zařízeních v této síti. Tento díl je tedy věnován základnímu scanování sítě.


Chceme-li získat představu o struktuře vnitřní sítě, ve které se uživatel nachází, je dobré zjistit, které IP adresy jsou v této síti živé. Pro oskenování určitého rozsahu IP adres nám bude stačit dokonce i jednoduchý kód v JavaScriptu.

Scanování sítě tímto skriptem je založeno na skutečnosti, že živá zařízení odpovídají na obdržený požadavek okamžitě. V případě vyslání požadavku na neexistující zařízení se ale nejprve čeká po stanovenou dobu, zda se zařízení neozve a teprve po tomto timeoutu dojde k vyvolání chyby.

V našem skriptu se tedy budeme snažit o načtení obrázku z jednotlivých IP adres a budeme testovat, zda došlo k události onError respektive onLoad v relativně krátkém čase, nebo zda zařízení po definovanou dobu neodpovědělo.

Poznámka ke kódu: Zdroj obrázku hledám na portu 9999, protože při testování na portu 80, může u některých zařízení docházet k vyskakování okna pro HTTP autorizaci. Tentokrát jsem se již snažil, aby byl kód funkční také v Internet Exploreru.


  1. <html>
  2.   <head>
  3.     <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  4.     <meta http-equiv="Content-Language" content="cs">
  5.     <link rel="StyleSheet" href="http://www.soom.cz/base.css" type="text/css">
  6.   </head>
  7.   <body>
  8.     <script>
  9.       function scan() { if (x!=20) scanIP(site + x); }
  10.  
  11.       function nonactive() {
  12.         window.stop?window.stop():document.execCommand("Stop");
  13.         document.getElementById('nonactive').appendChild(itemLI);
  14.         x++; scan();    
  15.       }
  16.  
  17.       function active() {
  18.         clearTimeout(casovac);
  19.         document.getElementById('active').appendChild(itemLI);
  20.         x++; scan();
  21.       }
  22.  
  23.       function scanIP (target) {
  24.         itemLI = document.createElement('li');
  25.         var text = document.createElement('p');
  26.         text.innerHTML = target;
  27.         itemLI.appendChild(text);
  28.         document.getElementById('obr').setAttribute("src", "http://" + target + ":9999");
  29.         casovac = setTimeout("nonactive()", 2000);
  30.       }
  31.  
  32.       function startScan() {
  33.         site = document.getElementById("siteIP").value; x = 1;
  34.         document.getElementById("obsah").innerHTML=''+
  35.           '<img id="obr" src="" onerror="active()" onload="active()" style="display:none;">'+
  36.           '<H3>Aktivní</H3><ul id="active"></ul>'+
  37.           '<H3>Neaktivní</H3><ul id="nonactive"></ul>'
  38.         scan();
  39.       }
  40.     </script>
  41.     <div id="obsah">
  42.       <small>První 3 oklety tvé lokální IP adresy s tečkou na konci</small><br>
  43.       <input type="text" id="siteIP" value="192.168.1.">
  44.       <input type="button" value="Scan" onclick="startScan()">
  45.     </div>
  46.  </body>
  47. </html>

Činnost skriptu demonstruje následující rám:





Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 1/2

1  2  3  4  5    
(známkování jako ve škole)