Banner Grabbing

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

[ Hits: 6.278 ]

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

Gravando log de erros gerados em consultas SQL

GMail Bomber

Protegendo suas paginas

Base64 encode e decode em PHP

Perfect Crypt Class


  

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