Banner Grabbing

Publicado por Perfil removido (última atualização em 09/10/2013)

[ Hits: 6.466 ]

Download 5875.banner.php




Banner Grabbing é uma técnica de enumeração usada para recolher informações sobre os sistemas de computador em uma rede e os serviços que estão sendo executados, por exemplo, uma máquina é um servidor FTP, através dessa técnica podemos descobrir qual é a versão desse serviço FTP.

  



Esconder código-fonte

#!/usr/bin/env php
<?

// Coded by MMxM

error_reporting(0);

function help($name){
    print "\n[*] IP-Range Banner grabber\n";
    print "[+] Coded by MMxM\n";
    print "[*] How to use:\n\n";
    print "\t\$ $name <ip-start> <ip-end> <ports> <threads>\n\n";
    print "[*] Example:\n\n";
    print "\t\$ $name 127.0.0.1 127.0.0.254 21,22,25,80,3306 10\n\n";
    exit(0);
}

function threads($argv){
    $ip1 = ip2long($argv[1]);
    $ip2 = ip2long($argv[2]);

    while ($ip1 <= $ip2) {
        $ips[] = long2ip($ip1);
        $ip1++;
    }

    print "\n[*] ".count($ips)." IP's to get banner\n\n";
    $out = 0;
    $thr = $argv[4];
    $ini = 0;
    $fin = $thr - 1;
    while(1){
        $childs = array();

        for ($count = $ini; $count <= $fin; $count++){
            if(empty($ips[$count])){
                $out = 1;
                continue;
            }

            $pid = pcntl_fork();

            if ( $pid == -1 ) {
                echo "Fork error\n";
                exit(1);
            } else if ($pid) {
                array_push($childs, $pid);
            } else {
                $n = $count+1;
                banner($ips[$count],$argv[3]);
                exit(0);
            }
        }

        foreach($childs as $key => $pid){
            pcntl_waitpid($pid, $status);
        }

        if($out == 1){
            return;
        }

        $ini = $fin + 1;
        $fin = $fin + $thr;

    }

}

function banner($ip,$ports){
    $list = explode(",",$ports);

    foreach($list as $port){
        $fp = fsockopen($ip, $port, $errno, $errstr, 2);

        if (!$fp) {
            print "\n[+] $ip : $port\n";
            print "[*] Closed Port => $port\n\n";
        } else {

            $out = "";
            $i = 1;
            fwrite($fp, "HEAD / HTTP/1.0\r\n\r\n");

            while (!feof($fp)){
                $a = fgets($fp, 1024);
                if(preg_match("/(^50)|(^$)/",$a)){
                    break;
                }
                if($port == 22){
                    $out = $a;
                    break;
                }
                $out .= $a;
            }

            if($out == ""){
                print "\n[+] $ip : $port\n";
                print "[-] Filtered port => $port\n\n";
            }
            else {
                print "\n[+] $ip : $port\n";
                print $out;
                print "\n\n";
            }
            fclose($fp);
        }
    }
}

if(count($argv) != 5)
    help($argv[0]);
else
    threads($argv);

?>

Scripts recomendados

Base64 encode e decode em PHP

Página protegida

Página protegida v2004.1

Cadastro utilizando a classe PDO com o método prepare()

Protegendo suas paginas


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts