Banner Grabbing

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

[ Hits: 6.440 ]

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

Geração de senhas e URL de vídeos Youtube e Vimeo

Gerador simples de hash MD5 em PHP

Login em PHP 2

Base64 encode e decode em PHP

Página protegida v2004.2


  

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