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

Útočný JavaScript (6)

Autor: .cCuMiNn.   
11.2.2011

Když už dokážeme zjistit, která zařízení jsou v síti "živá", nic nám nebrání zjistit také porty, na kterých tato zařízení naslouchají. Scanování portů bude proto tématem tohoto dílu.


Funkce skritu je založena na stejných principech, na jakých stálo samotné zjišťování aktivních zařízení. Opět otevřený port odpoví o něco rychleji, než port zavřený a my tak jen testujeme, za jak dlouho se k nám odpověď na náš požadavek vrátí.

Vzhledem k tomu, že je cíl aktivní, budou jednotlivé odpovědi přicházet mnohem rychleji, než by tomu bylo u neaktivního zařízení. Časový rozdíl mezi odpovědí získanou po odeslání požadavku na otevřený a uzavřený port je nyní opravdu minimální, a proto bude možná potřeba upravit timeout v závislosti na pingu vaší sítě.

Za zmínku stojí ještě skutečnost, že webové browsery nepovolí odeslání požadavků na všechny porty. Požadavky směřující na porty, které jsou běžně používány jinými službami (například SMTP, DNS, apd.) jsou browserem okamžitě blokovány a jejich dostupnost proto není možné s využitím JavaScriptu testovat.


  1. <html>
  2.   <head>
  3.   <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  4.   <link rel="StyleSheet" href="http://www.soom.cz/base.css" type="text/css">
  5.   </head>
  6.   <body>
  7.     <script>
  8.       function scan() {
  9.         if (x!=ports.length) scanPort(host);
  10.       }
  11.  
  12.       function closePort() {
  13.         window.stop?window.stop():document.execCommand("Stop");
  14.         document.getElementById('closeports').appendChild(itemLI);
  15.         x++; scan();    
  16.       }
  17.  
  18.       function openPort() {
  19.       clearTimeout(casovac);
  20.         document.getElementById('openports').appendChild(itemLI);
  21.         x++; scan();
  22.       }
  23.  
  24.  
  25.       function scanPort (target) {
  26.         itemLI = document.createElement('li');
  27.         var text = document.createElement('p');
  28.         text.innerHTML = ports[x];
  29.         itemLI.appendChild(text);
  30.         document.getElementById('obr').setAttribute("src", "http://" + target + ":" + ports[x]);
  31.         casovac = setTimeout("closePort()", 800);
  32.       }
  33.    
  34.  
  35.       function startScan() {
  36.         host = document.getElementById("IPaddress").value;
  37.         document.getElementById("obsah").innerHTML=''+
  38.           '<img id="obr" src="" onerror="openPort()" onload="openPort()" style="display:none;">'+
  39.           '<H3>Otevřené porty</H3><ul id="openports"></ul>'+
  40.           '<H3>Zavřené porty</H3><ul id="closeports"></ul>'
  41.         scan();
  42.       }
  43.  
  44.       var x = 0;
  45.       var ports = [80, 443, 445, 8000, 8008];
  46.    
  47.     </script>
  48.     <div id="obsah">
  49.       <small>Cílová IP adresa:</small><br>
  50.       <input type="text" id="IPaddress" value="192.168.1.1">
  51.       <input type="button" value="Scan" onclick="startScan()">
  52.     </div>
  53.   </body>
  54. </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.5/6

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