Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/01/2013, à 19:27

chtitueur62

Probleme script scan reseau

Bonjour,

je fais un script en PHP CLI qui scanne un reseau et me dis quel sont les ports ouvert, mais j'ai un probleme de syntaxe pour executer la commande nmap, en effet pour l'option du port je veux le définir comme ceci:

$scan=exec('nmap -sS -p$port[$m] $ip');

mais cela ne fonctionne pas. une erreur de syntaxe? ( ' ) ?
il me marque l'erreur:

Nmap done: 1 IP address (1 host up) scanned in 0.11 secondsNmap done: 1 IP address (1 host up) scanned in 0.11 secondsError #485: Your port specifications are illegal.  Example of proper form: "-100,200-1024,T:3000-4000,U:60000-"

Merci

Dernière modification par chtitueur62 (Le 29/01/2013, à 19:29)


Thery Guillaume
Intel core i3-2100
1 SSD 250 Go et 1 SSD 120 Go
ATI radeon HD 7970 2Gb

Hors ligne

#2 Le 29/01/2013, à 19:57

Maisondouf

Re : Probleme script scan reseau

passes par une variable intermédiaire, les appels externes en PHP n'aiment pas trop les opérations dans les paramètres, ni les tableaux d'ailleurs.

$l=$port[$m]; $scan=exec('nmap -sS -p $l $ip');

ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#3 Le 29/01/2013, à 20:05

chtitueur62

Re : Probleme script scan reseau

ça ne marche pas, il me dis toujours

Error #487: Your port specifications are illegal.  Example of proper form: "-100,200-1024,T:3000-4000,U:60000-"

Thery Guillaume
Intel core i3-2100
1 SSD 250 Go et 1 SSD 120 Go
ATI radeon HD 7970 2Gb

Hors ligne

#4 Le 29/01/2013, à 20:08

chtitueur62

Re : Probleme script scan reseau

mon script complet:

#!/usr/bin/php

<?php
$argc=$argc-1;
$port="21,22,25,80,110";
exec("rm /var/log/scannetwork.log");
if ($argc == 2)
{
        //echo "les paramétres sont: $argv[1] et $argv[2] \n";
        //##Récuperation des octets des plages d'adresse!
        //#Plage 1
        $a=explode(".", $argv[1]);
        echo "la plage ip n°1 est: $a[0].$a[1].$a[2].$a[3] \n";
        //plage2
        $b=explode(".", $argv[2]);
        echo "la plage ip n°2 est: $b[0].$b[1].$b[2].$b[3] \n";
        for ($i = $a[0]; $i <= $b[0]; $i++)
        {
                for ($j = $a[1]; $j <= $b[1]; $j++)
                {
                        for ($k = $a[2]; $k <= $b[2]; $k++)
                        {
                                for ($l = $a[3]; $l <= $b[3]; $l++)
                                {
                                        $ip="$i.$j.$k.$l";
                                        echo "$ip \n";
                                        $res=exec('ping -c1 '.$ip.' | grep transmitted | cut -f3 -d "," | cut -f1 -d "," | cut -f1 -d "%"');
                                        //echo "$res \n";
                                        if($res==0)
                                        {
                                                echo "l'ip $ip répond \n";
                                                for ($m = 0; $m <=4; $m++)
                                                {
                                                        $liste_port=explode(",", $port);
                                                        $n=$scan=[$m];
                                                        $scan=exec('nmap -sS -p$n '.$ip.' | grep open | cut -f2 -d " "');
                                                        echo "$scan \n";
                                                                /*if($scan = open)
                                                                {
                                                                        echo "Le port $port[$m] est ouvert \n";
                                                                }
                                                                else
                                                                {
                                                                        echo"le port $port[$m] est fermé ";
                                                                }*/
                                                }
                                                $f=fopen('/var/log/scannetwork.log','a');
                                                fwrite($f, "$i.$j.$k.$l est connecté: Ports ouvert: \n");
                                                fclose($f);
                                        }
                                        else
                                        {
                                                echo "l'ip $ip ne répond pas \n";
                                                $f=fopen('/var/log/scannetwork.log','a');
                                                fwrite($f, "$i.$j.$k.$l n'est pas connecté \n");
                                                fclose($f);
                                        }
                                }
                        }
                }
        }
}
else
{
        echo "Veuillez entrez la plage d'adresse, (ex: 192.168.0.1 192.168.0.254) en parametre \n";
}
?>

Thery Guillaume
Intel core i3-2100
1 SSD 250 Go et 1 SSD 120 Go
ATI radeon HD 7970 2Gb

Hors ligne

#5 Le 29/01/2013, à 21:04

Maisondouf

Re : Probleme script scan reseau

Dans l'autre sens peut-être:

$l=$port[$m]; $scan=exec('nmap -sS $ip -p $l');

Et puis pour certains port, il faut être en mode 'root'

papounet@amd8papou:~$ nmap -sS 192.168.0.8 -p 22
You requested a scan type which requires root privileges.
QUITTING!
papounet@amd8papou:~$ 

Dernière modification par Maisondouf (Le 29/01/2013, à 21:06)


ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#6 Le 29/01/2013, à 21:10

chtitueur62

Re : Probleme script scan reseau

ça fonctionne, mais j'ai un probleme dans la redirection , j'aimerai y voir ça:
poste $ip connecté: port ouvert: $port, port fermé: $port

comment faire cet redirection?

Mon script modifié:

#!/usr/bin/php

<?php
$argc=$argc-1;
$port="21,22,25,80,110";
exec("rm /var/log/scannetwork.log");
if ($argc == 2)
{
        //echo "les paramétres sont: $argv[1] et $argv[2] \n";
        //##Récuperation des octets des plages d'adresse!
        //#Plage 1
        $a=explode(".", $argv[1]);
        echo "la plage ip n°1 est: $a[0].$a[1].$a[2].$a[3] \n";
        //#Plage2
        $b=explode(".", $argv[2]);
        echo "la plage ip n°2 est: $b[0].$b[1].$b[2].$b[3] \n";
        for ($i = $a[0]; $i <= $b[0]; $i++)
        {
                for ($j = $a[1]; $j <= $b[1]; $j++)
                {
                        for ($k = $a[2]; $k <= $b[2]; $k++)
                        {
                                for ($l = $a[3]; $l <= $b[3]; $l++)
                                {
                                        $ip="$i.$j.$k.$l";
                                        echo "$ip \n";
                                        $res=exec('ping -c1 '.$ip.' | grep transmitted | cut -f3 -d "," | cut -f1 -d "," | cut -f1 -d "%"');
                                        //echo "$res \n";
                                        if($res==0)
                                        {
                                                echo "l'ip $ip répond \n";
                                                for ($m = 0; $m <=4; $m++)
                                                {
                                                        $liste_port=explode(",", $port);
                                                        //echo "$liste_port[$m] \n";
                                                        $n=$liste_port[$m];
                                                        $scan=exec('nmap -sS '.$ip.' -p'.$n.' | grep open | cut -f2 -d " "');
                                                        //echo "$scan \n";
                                                                if($scan == "open")
                                                                {
                                                                        echo "Le port $n est ouvert \n";
                                                                }
                                                                else
                                                                {
                                                                        echo"le port $n est fermé \n";
                                                                }
                                                }
                                                $f=fopen('/var/log/scannetwork.log','a');
                                                fwrite($f, "$i.$j.$k.$l est connecté: Ports ouvert: $n \n");
                                                fclose($f);
                                        }
                                        else
                                        {
                                                echo "l'ip $ip ne répond pas \n";
                                                $f=fopen('/var/log/scannetwork.log','a');
                                                fwrite($f, "$i.$j.$k.$l n'est pas connecté \n");
                                                fclose($f);
                                        }
                                }
                        }
                }
        }
}
else
{
        echo "Veuillez entrez la plage d'adresse, (ex: 192.168.0.1 192.168.0.254) en parametre \n";
}
?>

Merci.

Dernière modification par chtitueur62 (Le 29/01/2013, à 22:25)


Thery Guillaume
Intel core i3-2100
1 SSD 250 Go et 1 SSD 120 Go
ATI radeon HD 7970 2Gb

Hors ligne

#7 Le 30/01/2013, à 00:16

Maisondouf

Re : Probleme script scan reseau

Tu sais, tu peux exécuter la commande totale avec 'nmap' et traiter le résultat dans un fichier ensuite en php.

nmap 192.168.0.100-120 -p 21,22,25,80,110 >resultat

ASUS M5A88-v EVO avec AMD FX(tm)-8120 Eight-Core Processor,  OS principal Precise 12.04.1 LTS 63bits½
Bricoleur, menteur, inculte, inadapté social et mythomane, enfin d'après certains....
"the secret of my form is summed up in two words, no sport" (Winston Churchill)

Hors ligne

#8 Le 30/01/2013, à 06:18

chtitueur62

Re : Probleme script scan reseau

d'accord je vais y regarder.

Merci de m'avoir debloqué dans mon script smile


Thery Guillaume
Intel core i3-2100
1 SSD 250 Go et 1 SSD 120 Go
ATI radeon HD 7970 2Gb

Hors ligne