Banner Grabbing
Publicado por Perfil removido (última atualização em 09/10/2013)
[ Hits: 6.627 ]
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.
#!/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); ?>
Cadastro utilizando a classe PDO com o método prepare()
Gravando log de erros gerados em consultas SQL
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gravação de tela com temporizador
Aplicativo simples para gravar tela
Como fazer boot em img do debian 12.img da web? (11)
Manjaro 25.0 no permite usar crontab (1)
trocar linhas [RESOLVIDO] (11)