Andreas: Spamming Attacken

Hallo,
z.Z. wird eine kleine Seite von mir im Kontaktformular massiv gespammt. Ich hab das jetzt zwar abgestellt dass die Mails gesendet und gespeichert werden aber trotzdem wird weiter zugegriffen.
Innerhalb von 2 Tagen wurde zig mal die Rechnerkennung verändert:
219.127.248.XX
YahooBB219063085004.bbtec.net
stumpy.vmailxp.net
202.66.107.XX
213-140-22-212.ip.fastwebnet.it
host-148-244-150-XX.block.alestra.net.mx
222.118.167.XX
81.8.110.XX
202.28.27.XX
wpc1213.amenworld.com
218.189.215.XX
caravela.di.fc.ul.pt
220.76.150.XX
vbn.0012214.lodgenet.net
222.101.146.XX
b022.blue.fastwebserver.de
193.95.90.XX
83-103-70-XX.ip.fastwebnet.it
toronto209.server4you.de
b022.blue.fastwebserver.de

Wie kann es denn sein dass man die Rechnerkennung wie ein Chamälion die Farbe, ändern kann? Wie kann ich den aussperren?
Ich schätze mal dass hier jemand ein Script an meiner Seite ausprobiert denn die Inhalte der Formulareingaben ist über Tage hinweg der gleiche.

Gruß Andreas

  1. Moin!

    jrubinXXX.aol.com oder bergmoser?

    Wenn es das gleiche Problem ist, dann schreibe in diesem Thread

    Ist es ein anderes Problem, dann wäre ich über Infos zum Inhalt der Eintragungen dankbar.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
    1. Hallo,

      jrubinXXX.aol.com oder bergmoser?

      Äh was meinst du damit?

      Wenn es das gleiche Problem ist, dann schreibe in diesem Thread

      Nein hat wohl damit nichts zu tun.

      Ist es ein anderes Problem, dann wäre ich über Infos zum Inhalt der Eintragungen dankbar.

      Tja, wenn ich den noch hätte.
      Ich werde die Sperren nochmals abbauen und warten bis er bzw es nochmal spammt.
      Melde mich dann wieder.

      Gruß Andreas

      1. Moin!

        Hallo,

        jrubinXXX.aol.com oder bergmoser?
        Äh was meinst du damit?
        Wenn es das gleiche Problem ist, dann schreibe in diesem Thread
        Nein hat wohl damit nichts zu tun.
        Ist es ein anderes Problem, dann wäre ich über Infos zum Inhalt der Eintragungen dankbar.
        Tja, wenn ich den noch hätte.
        Ich werde die Sperren nochmals abbauen und warten bis er bzw es nochmal spammt.
        Melde mich dann wieder.

        So. Ich habe mal nachgeschaut. Es sind keine Windows-Rechner, sondern offenkundig unsichere Skripte auf Webservern, die als 'Proxy' missbraucht werden oder genackt worden sind - oder der Spammer hat sich tatsächlich bei etlichen Hostern eingekauft. Da ich auffällig viele Confixx-Login-Seiten sah vermute ich die üblichen Kandidaten "Iz muss voll korrekten Server gamez haben, wo kriegez iz den am billigzten, ich  habe zu Hause Windoz 98/XP und kann schon mit der Mauz zlicken"

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
        1. Hallo,
          so, ich hab mal die Sperren entfernt und der Spammer hat zugeschlagen.
          Es gibt 2 Typen:
          Bei der einen schreibt in alle Eingabefelder das gleiche hinein, irgend eine Buchstabenkombi und den Domainnamen, z.B. ieovxyfupv@domain.de.
          Bei der anderen schreibt er nur in Name, Vorname und Adresse das gleiche wie oben, andere Felder:
          Subject: f6fb2e12
          To: wesxqyal@domain.de
          bcc: PeiCanteenMc@aol.com
          From: wesxqyal@domain.de

          Aussperren tu ich ihn z.Z. so dass ich alle Felder außer email auf @ prüfe, ob in den Feldern der Domainname vorkommt etc.
          Außerdem habe ich eine Weiterleitung per Header auf eine separate Danke Seite gemacht damit man nicht einfach den Refresh-Button klicken kann zum absenden.

          Aber alles nichts richtiges und 100%tiges. Falls er dahinterkommt und weiter spammt werde ich ein Captscha von captcha.net einsetzen. Dies hab ich schon auf einer anderen Seite erfolgreich eingesetzt und der Spam ging auf Null zurück.

          Danke auch an alle anderen die geantwortet haben.

          Gruß Andreas

          1. Moin!

            Hallo,
            so, ich hab mal die Sperren entfernt und der Spammer hat zugeschlagen.
            Es gibt 2 Typen:
            Bei der einen schreibt in alle Eingabefelder das gleiche hinein, irgend eine Buchstabenkombi und den Domainnamen, z.B. ieovxyfupv@domain.de.
            Bei der anderen schreibt er nur in Name, Vorname und Adresse das gleiche wie oben, andere Felder:
            Subject: f6fb2e12
            To: wesxqyal@domain.de
            bcc: PeiCanteenMc@aol.com
            From: wesxqyal@domain.de

            Na prima. Das ist doch genau das wogegen das in der ersten Antwort verlinkte Skriptlein hilft.
            Einfach einbinden, Funktion mit den Namen der Inputs, welche keinen Zeilenumbruch haben dürfen aufrufen und eintragen wieviele Felder davon ein @ beinhalten dürfen.

            Fertig.

            MFFG (Mit freundlich- friedfertigem Grinsen)

            fastix®

            --
            Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
            1. Hallo,

              Na prima. Das ist doch genau das wogegen das in der ersten Antwort verlinkte Skriptlein hilft.
              Einfach einbinden, Funktion mit den Namen der Inputs, welche keinen Zeilenumbruch haben dürfen aufrufen und eintragen wieviele Felder davon ein @ beinhalten dürfen.

              Sorry, hab ich irgendwie nicht sofort begriffen um was es dort ging.
              Hab es mal eingesetzt und warte ab was passiert.

              Gruß Andreas

              1. Moin!

                Hab es mal eingesetzt und warte ab was passiert.

                Bei mir ist Ruhe...

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix®

                --
                Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
                1. Hallo,
                  der Spammer dringt mit seinen Attacken zwar nicht durch, aber trotzdem wird täglich zu hunderten angegriffen.

                  Das erzeugt erstens Traffic und zweitens möchte ich die Statistik nicht für den Spammer führen, der sie de facto unbrauchbar macht.

                  Wie kann ich ihn also gleich beim Betreten der Seite per Header z.B. abblocken?

                  Gruß Andreas

                  1. Moin!

                    Hallo,
                    der Spammer dringt mit seinen Attacken zwar nicht durch, aber trotzdem wird täglich zu hunderten angegriffen.

                    Das kannst Du nicht wirklich verhindern, es sei den Du schließt die Webseite.

                    Das erzeugt erstens Traffic und zweitens möchte ich die Statistik nicht für den Spammer führen, der sie de facto unbrauchbar macht.

                    Wie kann ich ihn also gleich beim Betreten der Seite per Header z.B. abblocken?

                    Eventuell Logfiles lesen... ob Du in an irgendwas erkennst, was ein 'normaler' Benutzer nicht als Merkmal hat.

                    Du kannst ihn 'teergruben'. Sende nach dem 404er einfach:

                    $teergrube='tefcecbiifkfmpewfmc hr rezeorwuuwzvu oervztontrzvev ot 82z4vuvtzon r  rewetvw8er';
                    for ($i=0;$i<length($teergrube);$i++) {
                        echo $teergrube{$i}
                        sleep 5;
                    }

                    exit;

                    Er bekommt aller 10 Sekunden ein Byte... Je nachdem wie gut seine Skripte sind blockierst Du damit seine Zombies und verringerst dadurch den Traffic. Leider blockierst Du auch einen Port zum Aussenden von Inhalten und es kostet den Apache auch immer ein Kindlein, dass am Leben bleiben und für Ihn dasein muss.

                    Alternativ: Schick ihm doch eine 302er oder 301er Umleitung (moved permanently) zu seiner eigenen IP... Wenn er folgt ziehen sich seine Zobis vielleicht selbst die Ports zu und die Betreiber der Server werden werden wach.

                    header("HTTP/1.1 301 Moved Permanently");
                    header("Location: 127.205.107.112");

                    Das ist eine IP des lokalen Klasse-A Netzwerkes auf jedem Rechner selbst

                    Seine Software wird also womöglich_ den Zombie mit dem Request beglücken.

                    header("Connection: close");

                    Ich denke, das ist die beste Idee, das solltest Du zuerst versuchen.

                    MFFG (Mit freundlich- friedfertigem Grinsen)

                    fastix®

                    --
                    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
                    1. Moin!

                      header("HTTP/1.1 301 Moved Permanently");
                      header("Location: 127.205.107.112");

                      Das ist eine IP des lokalen Klasse-A Netzwerkes auf jedem Rechner selbst

                      Seine Software wird also womöglich_ den Zombie mit dem Request beglücken.

                      header("Connection: close");

                      exit; # nicht vergessen, sonst wird das Skript womöglich weiter abgearbeitet.

                      Ich denke, das ist die beste Idee, das solltest Du zuerst versuchen.

                      (!)

                      MFFG (Mit freundlich- friedfertigem Grinsen)

                      fastix®

                      --
                      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
                      1. Moin!

                        Nächste Variante: Ein Ticket-System mit Dateiablage. Das geht so ähnlich wie mit Cookies, sind aber keine: das bedeutet, er muss raten dass er in ticket nichts ändern darf.

                        In der Seite, die das Formular erzeugt/anzeigt:

                        <?php

                        Ticket- Verzeichnis clearen

                        $handle=opendir('./tmp');
                        $livetime=30; # Minuten
                        while ($filename = readdir ($handle)) {
                           if ($filename != "." && $filename != ".." && $filename != "check.php") {
                          if  ( ((time()/60-filemtime('./tmp/'.$filename)/60)) > $livetime ) {
                                       unlink("./tmp/$filename");
                          }
                           }
                        }
                        closedir($handle);

                        Ticket erzeugen

                        $filename=md5($_SERVER['REMOTE_ADDR']."_".microtime());
                        $FILE=fopen("tmp/$filename","a") or die ("Fatal: tmp/$filename konnte nicht geöffnet werden." );
                        fwrite($FILE,' ');
                        fclose($FILE);
                        ?>
                        <form action="mailsenden.php" method="POST">
                        <input type="text" style="display:none" name="ticket" value="<? echo $filename; ?>">
                        ...

                        mailsenden.php:

                        Ticket- Verzeichnis clearen

                        $handle=opendir('./tmp');
                        $livetime=30; # Minuten
                        while ($filename = readdir ($handle)) {
                           if ($filename != "." && $filename != ".." && $filename != "check.php") {
                          if  ( ((time()/60-filemtime('./tmp/'.$filename)/60)) > $livetime ) {
                                unlink("./tmp/$filename");
                          }
                           }
                        }
                        closedir($handle);

                        testen des Tickets:

                        Sicherheitsmaßnahme: md5 erzeugt nur alphanumerisches:

                        $filename   = "tmp/".eregi_replace('[[1]]','', $_POST['ticket']);

                        Ohne diese könnten beliebige Dateien gelöscht werden!

                        $FILE       = fopen($filename,"r+") or die("Ups. Die Zeit, die Ihr Ticket für den Mailversand galt, ist leider abgelaufen. Bitte benutzen Sie die Zurücktaste Ihres Browser und laden Sie dann die Seite neu.<br>Leider müssen solche Maßnahmen vorgenommen werden um Spammer, welche notorisch versuchen diesen Dienst zu missbrauchen, abzuwehren. Sorry!");
                        fclose($FILE);
                        unlink($filename);

                        Und noch etwas zu verbessern:

                        Moin!

                        header("HTTP/1.1 301 Moved Permanently");

                        header("Location: http://127.205.107.112/you_have_unsafe_and_missused_skripts_on_your_server");

                        Das ist eine IP des lokalen Klasse-A Netzwerkes auf jedem Rechner selbst

                        Seine Software wird also womöglich_ den Zombie mit dem Request beglücken.

                        header("Connection: close");
                        exit; # nicht vergessen, sonst wird das Skript womöglich weiter abgearbeitet.

                        Ich denke, das ist die beste Idee, das solltest Du zuerst versuchen.
                        (!)

                        MFFG (Mit freundlich- friedfertigem Grinsen)

                        fastix®

                        --
                        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

                        1. :alnum: ↩︎

                        1. Moin!

                          Noch ein letzter Tip:

                          Benenne alles um!

                          • Ein Skript, welches Mail versendet, muss nicht so heissen.
                          • Ein Input für ein Subject muss nicht so heissen.
                          • Ein Input für die message muss nicht so heissen.

                          Grund?

                          Er muss ja irgendwie zu Deinem Skript gefunden haben....

                          MFFG (Mit freundlich- friedfertigem Grinsen)

                          fastix®

                          --
                          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
                          1. Hallo,
                            ja gute Idee, werde ich machen.

                            Gruß Andreas

          2. Hallo

            Bei der anderen schreibt er nur in Name, Vorname und Adresse das gleiche wie oben, andere Felder:
            Subject: f6fb2e12
            To: wesxqyal@domain.de
            bcc: PeiCanteenMc@aol.com
            From: wesxqyal@domain.de

            Ich hätte da noch einen weiteren Kandidaten, der sich bei mir an "Bcc:bergkoch8@aol.com" weiterleiten lassen will.

            Tschö, Auge

            --
            Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
            (Victor Hugo)
            Veranstaltungsdatenbank Vdb 0.1
            1. Moin!

              Ich hätte da noch einen weiteren Kandidaten, der sich bei mir an "Bcc:bergkoch8@aol.com" weiterleiten lassen will.

              Ich überlege gerade, ob man dem nicht ein Skript hinhängen sollte, was so in etwa macht, wonach ihm ist :)

              Alternativ könnte man was schreiben, was die IP's der Server der gehackten Webauftritte loggt um dann die Abuses/hostmaster der Hoster informieren zu können, damit die sich kümmern. Ich denke, ich werde mein Tool mal entsprechend erweitern.

              Die abuse kann man rausfinden: http://www.fastix.de/abuse.php -> ich denke, es ist kein Problem ein Skript oder einen webservice zu schreiben welcher nur die mailadresse des Abuse rausgibt.

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix®

              --
              Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
              1. Moin!

                Die abuse kann man rausfinden: http://www.fastix.de/abuse.php -> ich denke, es ist kein Problem ein Skript oder einen webservice zu schreiben welcher nur die mailadresse des Abuse rausgibt.

                Gesagt. Getan:

                $ip ist numerische ip in der Form: xxx.xxx.xxx.x

                Ansonsten erfolgt eine Antwort: 'usage: http://fastix.de/GetAbuse.php?ip=d.dd.ddd.ddd'

                $strAbuseMail=readfile('http://www.fastix.de/GetAbuse.php?ip='.$ip);

                Die Adresse des Abuse wird als text/plain zurückgegeben.

                Verwendung:

                Bei festgestelltem Missbrauch des Skriptes erstellt Ihr einen "Logeintrag" mit IP des aufrufenden Hostes, der abgefragten Seite, der genauen Uhrzeit (GMT), sämtlichen übergebenen Daten (stehen in $_SERVER["argv"]), dazu einen netten Text nebst Subject (bitte englisch) in welchem ihr das Problem beschreibt sowie ihm den Tipp gebt die Betreiber der Auftritte auf dem Host auf die Unsicherheit ihrer Skripte hinzuweisen und sendet den an den abuse, welchen das obige Skript zurückgibt. Gebt dem abuse eine Adresse zum Antworten...

                Vorher jedoch: prüfen, ob ip schon in Textdatei, damit Ihr den Abuse nicht mit 2000 Mails vollmüllt:

                (Ich mache sowas am liebsten per shell-skript:)

                prüfen, ob schon drin:
                <?php
                $intTest=grep $ip abuse.dat | wc -l;
                if ($intTest==0) {
                  # Anhängen an Textdatei:
                  $dummy=echo $ip >> abuse.dat;
                } else {
                  # whatever...
                }
                ?>

                Warum kein Fertigskript?

                Ich will da keinen ranlassen, der es eigentlich nicht selbst könnte.

                MFFG (Mit freundlich- friedfertigem Grinsen)

                fastix®

                --
                Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
  2. Tach,

    Wie kann es denn sein dass man die Rechnerkennung wie ein Chamälion die Farbe, ändern kann?

    da könnte zum Beispiel ein kleines Botnet am Werk sein, oder jemand, der Proxies nutzt, auch wenn die geposteten Adressen nicht dazu passen würden.

    Wie kann ich den aussperren?

    Vermutlich wird das ohne Techniken, die Mensch und Maschine unterscheiden können (z.B. Captcha) nur schwer zu machen sein, außer der Scriptautor fällt durch irgendetwas (z.B. ungewöhnliche Requests, oder ungewöhnlicher User Agent) genauer auf und ist so von einem normalen Nutzer zu unterscheiden. Alternativ, könnte man die Anzahl an Anfragen, die erlaubt sind limitieren.

    mfg
    Woodfighter

  3. Moin!

    Wie kann es denn sein dass man die Rechnerkennung wie ein Chamälion die Farbe, ändern kann?

    Er benutzt Zombies, auch 'bot-Netze' genannt. Die Dinger kann man mieten, kostet pro tausend Rechner, Viertelstunde in Abhängigkeit vom der Alter der Infektion. Das sind Rechner von Windows-Benutzern, die in eMails auf alles klicken was Erheiterung verspricht und dem Rechner nach Windows nun auch  Viren, Würmer und andere Parasiten aufhalsen.

    Wie kann ich den aussperren?

    Dazu ist allein der Inhalt der Eintragungen zu rate zu ziehen. Handelt es sich um einen Spamversuch mit URLs, dann versehe diese in eventuell automatisch erzeugten Links mit dem Attribut

    rel="nofollow" - also <a href='http://server.tld/seite' rel='nofollow'> um sie für Spammer uninteressant zu machen.

    Bei allem anderen wäre ich (und andere auch) dankbar für weitere Informationen zum Angriffsmuster.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
  4. z.Z. wird eine kleine Seite von mir im Kontaktformular massiv gespammt. Ich hab das jetzt zwar abgestellt dass die Mails gesendet und gespeichert werden aber trotzdem wird weiter zugegriffen.

    Du filterst vermutlich die Eingabe nicht.
    Mit grosser Wahrscheinlichkeit wird (oder wurde) über dein Kontakformular Spam versendet. Interessanter als die IP Nummern ist das was im Subject steht, mit Hilfe eines manipulierten Mail Subjekt lässen sich Mails an beliebige Empfänger versenden.

    Struppi.