PeterKalafat: NETZWERKSICHERHEIT MITTELS PHP

Erstmal ein HALLO an alle !!!

Habe folgendes Problem soll als Facharbeit mittels PHP etwas programmieren was unter dem Thema Netzwerksicherheit steht.

Genaueres Thema  Die Aufgabe lautet mittels PHP alle verfügbaren Clients im Netz zu ermitteln und möglichst viele Daten dieser Clients anzuzeigen.

Vielleicht gibt es ja hier den einen oder anderen der mir dabei weiter helfen kann und mir Tipps bezüglich des Quelltextes geben kann.

Muss dazu sagen dass ich ein vollkommener Anfänger bin [Taschenrechnerprogrammierer ;-) ]. Deswegen hab ich suche ich hier im Board Hilfe =(…

Und bitte nicht um Antworten die z.B. lauten „Dafür ist PHP nicht geeignet“ oder „Vielleicht solltest du erstmal PHP erlernen“… denn diese bringen mich nicht weiter und da ich nicht mehr soviel Zeit habe wäre es nett wenn ich hier Support bekommen würde.

BIG THX im Voraus

  1. hi,

    Muss dazu sagen dass ich ein vollkommener Anfänger bin [Taschenrechnerprogrammierer ;-) ]. Deswegen hab ich suche ich hier im Board Hilfe =(…

    Board?

    Und bitte nicht um Antworten die z.B. lauten „Dafür ist PHP nicht geeignet“ oder „Vielleicht solltest du erstmal PHP erlernen“… denn diese bringen mich nicht weiter

    schade, die wollte ich aber eigentlich geben ...

    und da ich nicht mehr soviel Zeit habe wäre es nett wenn ich hier Support bekommen würde.

    warum hast du dann nicht früher angefangen?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Hallo PeterKalafat!

    Muss dazu sagen dass ich ein vollkommener Anfänger bin
    [Taschenrechnerprogrammierer ;-) ]. Deswegen hab ich suche ich hier
    im Board Hilfe =(…

    Warum nimmst du dann ein solches Thema als Facharbeit? Wähle lieber
    Religion oder Sport, das ist einfacher ... ;-) Erwarte hier keine
    Komplettlösungen, sondern mache dich erstmal selbst an die Arbeit.
    Wenn du dann immer noch Fragen hast, stelle sie hier.

    Außerdem:
    Board?

    ℆, ℒacℎgas

    --
    Bei der intendierten Realisierung der linguistischen Simplifizierung
    des regionalen Idioms resultiert die Evidenz der Opportunität extrem
    apparent, den elaborierten und quantitativ opulenten Usus nicht assi-
    milierter Xenologien konsequent zu eliminieren!
  3. 你好 PeterKalafat,

    zu deiner Frage: fuer deine Aufgabe braucht man recht umfangreiches Fachwissen, dass man nicht mal eben so bekommt. Da wirst du dich schon naeher mit dem Thema auseinandersetzen muessen. Einen Einstieg bekommst du, wenn du z. B. die FAQs von news:de.comp.security.misc liest oder dir Buecher besorgst, die sich mit diesen Themen beschaeftigen.

    Wenn du eine Billig-Version brauchst, reicht es, wenn du dich mit Network-Functions von PHP auseinander setzt. Fuer einen simplen Net-Scan mit ein paar Infos wie Hostname, offene Ports, etc, reicht das aus, wobei du je nach Subnetz-Groesse sehr wahrscheinlich auf einen Timeout stossen wirst.

    [...] und da ich nicht mehr soviel Zeit habe wäre es nett wenn ich hier Support bekommen würde.

    Hier gibts keinen Support, nur Hilfe zur Selbsthilfe.

    再见,
    克里斯蒂安

    --
    Mit einem Windhauch kannst du das Feuer loeschen. Mit einem Windhauch kannst du das Feuer entfachen.
  4. Ja es wurde festgelegt, dass wir im Fach Informatik schreiben müssen... kann ich ja nichts dafür =(...

  5. <?php
    function portscan ($ip) {
    for ($port = 1; $port < 200; $port++) {
       if ($socket = fsockopen($ip, $port, $errno, $errstr, 1)) {
            print("Port $port offen.");
            fclose($socket);
        }
        flush();
    }
    }
    ?>

    kann man hiermit die ports der einzelnen Clients rausbekommen ???

    1. 你好 PeterKalafat,

      [...]
      kann man hiermit die ports der einzelnen Clients rausbekommen ???

      Nur die offenen TCP-Ports von 1 bis 200.

      再见,
      克里斯蒂安

      --
      Beware Evildoers for my deed is done and every little damsel in distress will be shelted!
  6. Welche Informationen über Clients sind denn per PHP zu ermitteln ???

    1. 你好 PeterKalafat,

      Welche Informationen über Clients sind denn per PHP zu ermitteln ???

      Grundsaetzlich: alle, die man auch mit anderen Programmiersprachen
      ermitteln kann. Du musst nur die richtigen Protokolle sprechen und die
      richtigen Untersuchungen anstellen.

      再见,
      克里斯蒂安

      --
      Kommt ein Vektor zur Drogenberatung: "Hilfe, ich bin linear abhaengig!"
      1. und was wären das für informationen ?? IP ? Port ? was noch ??

  7. Hi,

    Genaueres Thema  Die Aufgabe lautet mittels PHP alle verfügbaren Clients im Netz zu ermitteln und möglichst viele Daten dieser Clients anzuzeigen.

    Das funktioniert nicht. Überhaupt nicht.
    Du kannst über Clients nur etwas erfahren, wenn sie bei Dir anklopfen, nicht umgekehrt.

    Anders, wenn es sich um Server handelt. Der Begriff "Server" ist hier ganz allgemein und meint nur, das der Rechner auf Anfrage reagiert. Wie und womit ist hier nebensächlich.

    Hier hüpft nun das Thema "Netzwerksicherheit" in's Bild und damit auch der Sinn hinter Deiner Aufgabe: es sollen alle lokalen Netzwerkknoten darauf überprüft werden, ob sie als Server fungieren. Tun sie das ist etwas faul im Staate Dänemark, das weiterer Überprüfung bedarf. Meist ist es zwar nur ein ausschließlich lokal betriebener Messaging-Service o.ä., kann aber auch ein Trojaner o.ä. sein.
    Zu diesem Zwecke und Behufe gibt es sehr gute Tools (am bekanntesten dürfte da wohl NMAP sein). Wenn Du bei denen mal unter die Haube schaust wirst Du feststellen, das das alles sehr viel ist. Viel zuviel, um das "mal eben" in PHP zu schreiben. Es geht also nur um's Verstehen.
    Und wenn's um's Verstehen geht bist Du hier bei selfhtml.org schonmal bestens aufgehoben ;-)

    Es gibt im Normalfall 2^16 Ports. Die unteren 1024 (Port 0-1023) sind zwar die interessanteren, es sollte sich in diesem Fall aber nicht drauf beschränkt werden. Die wichtigen Datenübertragungsprotokolle sind UDP und TCP. Macht also 2^17 Prüfstellen pro IP. Dazu kämen dann noch die verschiedenen Protokolle der Dienste, aber auf Offenheit eines Ports kann auch so geprüft werden (es gibt aber einige Ausnahmen).
    Manche Dienstprotokolle sind einfach zu testen, wie z.B. HTTP. Da antwortet der Webserver immer mit irgendwas (auch hier:es gibt aber einige Ausnahmen). Auch ist es evt möglich z.B. mit HEAD einige Informationen über den Web-Server abzufragen, wenn er das zuläßt.

    Einige der  o.a. Ausnahmen:

    • der Server hinter der befragten IP kann alle Anfragen von Deiner IP zurückweisen (REJECT) oder gar fallenlassen (DROP). Bei letzterem weißt Du noch nicht einmal, ob hinter der IP überhaupt eine aktive Kiste sitzt.
    • der Server ist evt nicht sehr gesprächig oder fälscht gar seine Identität oder ist gar kein "richtiger" Server sondern ein sogenannter "honeypot".
    • der Port öffnet sich evt nur mit "geheimem Klopfzeichen"

    Alleine schon aufgrund dieser Ausnahmen kann die eingangs erfolgte Beschränkung auf Clients vollständig entfallen. Es gilt auch für Server: es funktioniert prinzipiell nicht.

    Und bitte nicht um Antworten die z.B. lauten „Dafür ist PHP nicht geeignet“ oder „Vielleicht solltest du erstmal PHP erlernen“… denn diese bringen mich nicht weiter und da ich nicht mehr soviel Zeit habe wäre es nett wenn ich hier Support bekommen würde.

    Nunja, so ganz ohne PHP Kenntnisse geht's nicht, aber das dürfte Dir schon klar sein. Du hast ja auch schon ein Snippet zusammengefummelt (Ich geh' einfach mal davon aus, das Du das auch tatsächlich selber warst). Einfach den Loop auf alle Ports erweitern und noch UDP mit in's Boot nehmen (bitte beachte dabei die Hinweise auf http://de3.php.net/manual/en/function.fsockopen.php).
    Dann evt bei allen zugewiesenen Ports noch zusätzlich das Protokoll des zugewiesenen Dienstes ausprobieren. Zwei einfache Beispiele (einmal TCP, einmal UDP) sollten da reichen.

    so short

    Christoph Zurnieden