Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Portscanner em JS/HTML

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dica Portscanner em JS/HTML

    Há bastante tempo, o pink noise me disse que era possível criar um PortScanner apenas usando HTML (na verdade, o uso de Javascript é necessário). Segundo ele, bastava setar imagens para os servidores, já nas portas requeridas, e com Javascript (não disse?) se calculava o tempo que a imagem levou para carregar.

    Hoje à noite, estive pensando nisso e resolvi por em prática. Porém, se eu fizesse desse jeito, provavelmente encontraria problemas, já que a diferença entre o tempo que o navegador leva para descobrir que a porta está fechada e o tempo para descobrir que está aberta, principalmente em servidores locais ou internos, é irrelevante. Assim, resolvi criar de outra forma: setando tags <scripts> e adicionando no evento Onload a chamada à função que relata as portas abertas.

    Utilizei o PHP apenas como auxiliar, para montar o teste com base nas respostas do usuário ao primeiro formulário. O que realmente manda neste caso é o Javascript e o HTML. Veja:

    Código:
    <?php
    set_time_limit(0);
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>(PoC) HTML/JS Portscan by 0KaL</title>
    <script type="text/javascript">
    function aberta(porta) {
    alert(porta+" opened");
        document.getElementById('results').innerHTML += "<br/>"+porta+" aberta.";
    }
    </script>
    
    <meta name="pinterest" content="nopin" /></head>
    <body>
    <?php
    if($_SERVER['REQUEST_METHOD']=="POST" AND $_POST['svr']!="") {
        ?>
    Aguarde enquanto as portas são testadas pelo seu navegador.<br/>
    <button Onclick="window.stop()">Parar teste</button>
    <button Onclick="history.back()">Voltar</button>
    <div id="results"></div>
    
        <?php
        for($i = (int)$_POST['a']; $i <= (int)$_POST['b']; $i++) {
            ?>
            <script src="//<?=$_POST['svr']?>:<?=$i?>" Onload="aberta(<?=$i?>);"></script>
            <?php
        }
    } else {
    ?>
    <form method="post">
    <p>IP/Name (domain): <br/>
    <input type="text" name="svr" /></p>
    <p>Ports range: <br/>
    <input type="number" name="a" /> to <input type="number" name="b" /></p>
    <p><input type="submit" /></p>
    </form>
    <?php
    }
    ?>
    </body>
    </html>
    Claro que isso é só um exemplo, não é bem utilizável quando se há ferramentas bem mais completas, como o Nmap.
    Este material pode ser compartilhado, desde que os devidos créditos sejam dados.



    Notify-list · Twitter · Blog

    Nova lei: Invadir computadores protegidos é crime.
    Lógica: Se eu invadi, não é protegido. Logo, não é crime :-)
    Similar Threads

  • Font Size
    #2
    Testei, no início não funcionou porque o código tinha alguns problemas de compatibilidade aí eu tomei a liberdade de re-escrever...
    Código PHP:
    <?php set_time_limit(0); ?>
    <!DOCTYPE html>
    <html>
        <head>
        <title>(PoC) HTML/JS Portscan by 0KaL</title>
        <script type="text/javascript">
            function aberta(porta) {
                alert(porta + " opened");
                document.getElementById('results').innerHTML += "<br/>"+porta+" aberta.";
            }
        </script>
        <meta name="pinterest" content="nopin" />
        </head>
        <body>
            <?php
            
    if(isset($_POST['svr'])) {
            
    ?>
            Aguarde enquanto as portas são testadas pelo seu navegador.<br/>
            <button onclick="window.stop()">Parar teste</button>
            <button onclick="history.back()">Voltar</button>
            <div id="results"></div>
            <?php
            
    for($i = (int)$_POST['a']; $i <= (int)$_POST['b']; $i++) {
            
    ?>
            <script src="//<?php echo $_POST['svr'].':'.$i?>" onload="aberta(<?php echo $i?>);"></script>
            <?php
            
    }
            } else {
            
    ?>
            <form method="post">
                <p>IP/Name (domain): <br/>
                <input type="text" name="svr" /></p>
                <p>Ports range: <br/>
                <input type="text" name="a" /> to 
                <input type="text" name="b" /></p>
                <p><input type="submit" /></p>
            </form>
        </body>
    </html>
    <?php ?>
    Aparentemente o script só serve pra testar a porta 80, em todos os navegadores que eu testei a conexão com uma porta diferente era bloqueada então esse tipo de port scanner não funciona para as demais portas, mas, valeu a tentativa
    --
    Johnny Sys


    A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original

    Comment

    X
    Working...
    X