très bon tuto.
Pour tester les ports en php, voilà une fonction de mon cru :
Code PHP :
<?php
namespace core_01;
function analyse_ports($host=null,$min_port=null,$max_port=null,$print=null)
{
/*
Version 1.0
Cette fonction "Analyse des Ports d'une Machine" possede 4 parametres:
OGLIGATOIRE : le 1er est l'hote que l'on veut tester.
FACULTATIF : le 2eme est le port minimun que l'on veut tester (par default 1)
FACULTATIF : le 3eme est le port maximun que l'on veut tester (par default du 2eme parametre)
(donc un seul port est tester)
FACULTATIF : le 4eme définit l'affichage (par default rien ne seras affichés)
(1 correspond aux ports fermes et 2 correspond aux ports ouverts et 3 à tous les ports <img src="https://dev.n-pn.fr/forum/images/smilies/wink.png" alt="Wink" title="Wink" class="smilie smilie_2" /> )
/!\ note : Si ni le 2eme, ni le 3eme paramètre est passer, alors tous les ports seront analysers!
(malgrer ce que pourrais faire croire les phrases en haut <img src="https://dev.n-pn.fr/forum/images/smilies/wink.png" alt="Wink" title="Wink" class="smilie smilie_2" /> )
Exemple d'appel : analyse_port('127.0.0.1',80,120,2);
afficheras les ports ouverts sur 127.0.0.1 allant de 80 à 120 <img src="https://dev.n-pn.fr/forum/images/smilies/wink.png" alt="Wink" title="Wink" class="smilie smilie_2" />
Elle retourne un array à deux dimensions $result['open_ports'][] et $result['close_ports'][]
*/
global $_VAR;global $_TEXT;
$result=null;
if($host!=null)
{
$host=htmlspecialchars($host);
if(filter_var(gethostbyname($host), FILTER_VALIDATE_IP))
{
if($min_port==null&&$max_port==null)
{
$min_port=1;
$max_port=65536;
}
if(is_numeric($min_port)&&$min_port>=1&&$min_port<=65536)
{
$min_port=intval($min_port);
if($max_port==null)
{
$max_port=$min_port;
}
if(is_numeric($max_port)&&$max_port>=1&&$max_port<=65536&&$max_port>=$min_port)
{
$max_port=intval($max_port);
if($print==null||$print==1||$print==2||$print==3)
{
for($min_port=$min_port;$min_port<=$max_port;$min_port++)
{
if (@fsockopen($host,$min_port))
{
$result['open_port'][]=$min_port;
}
else
{
$result['close_port'][]=$min_port;
}
}
if($print==1)
{
foreach($result['close_port'] as $key=>$value)
{
echo 'port ',$value,' is close at ',$host,'<br />';
}
}
elseif($print==2)
{
foreach($result['open_port'] as $key=>$value)
{
echo 'port ',$value,' is open at ',$host,'<br />';
}
}
elseif($print==3)
{
$test_1=array_flip($result['close_port']);
foreach($test_1 as $key=>$value)
{
$test_1[$key]='close';
}
$test_2=array_flip($result['open_port']);
foreach($test_2 as $key=>$value)
{
$test_2[$key]='open';
}
$test=$test_1+$test_2;
ksort($test);
foreach($test as $key=>$value)
{
echo 'port ',$key,' is ',$value,' at ',$host,'<br />';
}
}
}
else
{
echo 'error in function analyse_port : false parameter print!';
return false;
}
}
else
{
echo 'error in function analyse_port : false parameter max_port!';
return false;
}
}
else
{
echo 'error in function analyse_port : false parameter min_port!';
return false;
}
}
else
{
echo 'error in function analyse_port : false host!';
return false;
}
}
else
{
echo 'error in function analyse_port : false parameter host!';
return false;
}
return $result;
}
Sinon plus puissant, nikto!
Code :
sudo apt-get install nikto && nikto -h 127.0.0.1