PDA

Bekijk Volledige Versie : open relay mail script



trendhoper
08/12/05, 11:58
Hallo


Heb op mijn server +/- 150 klanten met een website.
Naar mijn idee is er eentje bij die een open script heeft draaien waar af en toe diverse mailtjes worden verzonden.
Veel mailtjes spam gaan naar aol.com.


Heb al ge'find op formail.pl in diverse uitvoeringen FormMail.pl .......

Maar niets gevonden.

Hoe kan ik nou uitvinden welk script dit doet.
Het word verzonden als apache user dus via de website.

Met dank

Keenondots
08/12/05, 13:15
Haal 's één van die spam berichten uit de mailq en bekijk 'm 's goed. Dikke kans dat je uit de content kunt halen van wie hij komt (kijk naar From, Subject en de body).

wonko
08/12/05, 13:50
Je kan ook eens je apache logs naast die van je maildaemon leggen, en verbanden zoeken...

Herbert
08/12/05, 20:32
Sorry in een andere topic had ik dit ook al gepost voordat ik dit las..
Ik heb hetzelfde, ook naar aol.com.
Ook hier kan ik niets vinden..
Het is een groot probleem voor mij, xs4all heeft de filters aangezet waardoor de websites niet meer bereikbaar zijn.
Had je het al gevonden??

Glenn
08/12/05, 20:41
Origineel geplaatst door Herbert
Sorry in een andere topic had ik dit ook al gepost voordat ik dit las..
Ik heb hetzelfde, ook naar aol.com.
Ook hier kan ik niets vinden..
Het is een groot probleem voor mij, xs4all heeft de filters aangezet waardoor de websites niet meer bereikbaar zijn.
Had je het al gevonden?? Sta je op een blocklist? Dan moet je zorgen dat je daar vanaf komt, want XS4ALL is een fervent gebruiker hier van.

Herbert
08/12/05, 21:07
Origineel geplaatst door Glenn
Sta je op een blocklist? Dan moet je zorgen dat je daar vanaf komt, want XS4ALL is een fervent gebruiker hier van.
Ik heb de lijn van xs4all en die hebben er een filter opgezet.
Ze willen absoluut weten waar het vandaan komt.

De volgende akties heb ik nu ondernomen:

1: Poort 25 uitgeschakeld (geblokt in de firewall)
2: Alle bestanden in de Mail Queue zijn verwijderd
3: Ale logs doorgezocht zonder resultaat.
4: Enkele gebruikers zijn verwijderd op mijn server
5: Max Maximum recipients per message is ingesteld op 5

Volgens mij kan ik de Mail Queue controleren of er geen spam meer tussen staat, alles wordt niet verzonden omdat de mailserver uit staat.

Meer kan ik niet doen hier toch?

®on
08/12/05, 21:48
Join de club denk ik:
http://www.webhostingtalk.nl/showthread.php?s=&threadid=82498

Glenn
08/12/05, 21:54
Gebruik ook de open relay test die ik in een ander topic gaf :)

Herbert
08/12/05, 22:14
Origineel geplaatst door Glenn
Gebruik ook de open relay test die ik in een ander topic gaf :)
Dat gaat nu niet, alles staat dicht door xs4all omdat zij filters erop hebben gezet.
Ik weet het even ook niet meer..
Klanten beginnen al te bellen dat het hun 1000 euro per dag kost als hun website offline is.

Glenn
08/12/05, 22:31
Wacht even. Is jouw ADSL verbinding nu gefilterd (ik heb dat ook eens gehad)? En wat heeft dat te maken met offline zijnde websites?

Herbert
08/12/05, 22:44
Origineel geplaatst door Glenn
Wacht even. Is jouw ADSL verbinding nu gefilterd (ik heb dat ook eens gehad)? En wat heeft dat te maken met offline zijnde websites?
Omdat mijn server hier thuis staat.
Ja nee we gaan a.u.b. niet discuseren over servers thuis, dit is al 4 jaar bij mij zo..

Glenn
08/12/05, 22:55
Origineel geplaatst door Herbert

Omdat mijn server hier thuis staat.
Ja nee we gaan a.u.b. niet discuseren over servers thuis, dit is al 4 jaar bij mij zo.. Ok, je geeft het zelf al aan. Websites die 1000 euro per dag opleveren voor de klant host je niet thuis, maar dat dus terzijde ;)

Als het goed is kan je nu alleen surfen via de proxy van xs4all. Het enige wat helpt is een paar logs opsturen die aantonen dat je de gaten gedicht hebt. Vervolgens is het wachten op XS4ALL. Reken er maar niet op dat ze jou voorrang geven, heb dit ook geprobeerd 'af te dwingen' omdat ik voor mijn baas op bepaalde dagen thuis werk. Met mijn consumenten ADSL heb ik daar geen recht op, ik moest maar gaan inbellen (dat zou je ook kunnen doen ;), je server aan een 56k6 hangen).

Sorry, maar hier kan denk ik niemand je mee helpen.

ju5t
08/12/05, 23:21
XS4ALL heeft ook de mogelijkheid om je server te scannen op open relay. Die is misschien wat beter in elkaar gezet als die van abuse.net.

Vraag of ze dat ook meteen even kunnen controleren voor je.

Glenn
08/12/05, 23:24
Sterker nog, alleen XS4ALL kan nu nog maar scannen op open relay, omdat alle traffic naar je server thuis nu gefilterd wordt.

Herbert
09/12/05, 23:29
Alles is weer online hier, hier het resultaat van de open relay:
Relay test result
All tests performed, no relays accepted by remote host.
-
Maar dit was al zo daar lag het niet aan, het was een php form script.
De betreffende site is offline gehaald, ik weet niet of het zin heeft stappen te ondernemen omdat de gebruiker van het script in kwestie het ook niet wist.
Ik heb sendmail in de debug status staan nu en alle berichten blijven in de Mail Queue totdat ik heb gecheckt of er geen spam meer in staat.

Maar kun je sendmail niet blokeren op bcc ??

CharlieRoot
10/12/05, 00:31
Ik heb exact het zelfde op 3 servers waarvan 1 thuis.. echt te lijp..

Dillard
10/12/05, 01:02
Laatste tijd ook veel voorbij zien komen. Wordt allemaal veroorzaakt door het ontbreken van server-side validatie van de invoer in PHP-mail scripts (bv. contactformulieren). Helaas zijn enkele figuren (^$@%$#) op het geniale idee gekomen om hier scripts voor te schrijven die websites afschuimen op zoek naar "zwakke" mailscripts met een bijzondere interesse voor mailforms. Uiteraard met de bedoeling deze te gebruiken voor SPAM-praktijken.

Het heeft ons de laatste weken (te) veel tijd gekost (ook om klanten uit te leggen wat nu feitelijk het probleem is). Antwoorden als "ja maar we gebruiken toch een java-script controle".

Omdat het niet mogelijk is om alle bestanden van alle klanten te controleren kunnen we alleen maar passief optreden (zo controleren we alle mailbounces op dit moment). Een lek script trekken we direct uit de lucht (chmod 000) en dan informeren we de eigenaar en laten deze de aangepaste code naar ons doorsturen voordat we de block verwijderen.

Erg vervelend, maar het is niet anders :( :(

CharlieRoot
10/12/05, 01:25
tsja, moeten ze maar leren coden he ;)

Is er niets iets server-globaals in te stellen (php.ini?) om serverside validatie af te dwingen?

ju5t
10/12/05, 19:02
Je zou kunnen validaten met een eigen script. Je verwijst in php.ini naar dat script die op zijn beurt weer de sendmail binary aanspreekt, na validatie.

Volgens mij zou dit moeten werken.

Glenn
10/12/05, 19:23
Als je wilt heten hoe je een goed mailscript maakt:

http://www.google.nl/search?hl=nl&q=mail+injection&btnG=Google+zoeken&meta=

Erg veel goede sites worden hier gevonden.

iDiensten
10/12/05, 20:19
Voor zover bij mij bekend zou het wel mogelijk moeten zijn op enige manier een limiet in te stellen op het maximaal aantal mail adressen.
Hoe? Don't ask, nooit meer heen gezocht.

Een en ander is natuurlijk wel te voorkomen door je klanten al een standaard contactformulier-verzendertje aan te bieden (zoals xs4all dat ook doet)... kan wat schelen.

Sommige blacklists geven trouwens de mogelijkheid om de mails waarover het gaat te bekijken, erg handige tooltjes om heel snel te zien waarom en hoe.

wie poste nou laatst deze link daar ook al over: http://computerbookshelf.com/email_injection/

CharlieRoot
10/12/05, 20:20
een goed script maken is voor mij zelf geen probleem.

Het gaat om mijn klanten. Wil dus iets server-globaals waarmee ik die checks kan doen.

iDiensten
10/12/05, 20:23
Origineel geplaatst door CharlieRoot
een goed script maken is voor mij zelf geen probleem.

Het gaat om mijn klanten. Wil dus iets server-globaals waarmee ik die checks kan doen.

Geachte klant,

blablalba

gebruik:
scripts.i-trends.nl/mail/formail.php

bla bla bla instructies...bla bla bla..

:)

Zij ze zien het als gratis service en jij weer van een hoop spam verlost.

Vervolgens kun je overwegen om mail() uit te schakelen en alleen op verzoek (na controle) weer in te schakelen als je ook van klantje-pesten houd natuurlijk

ju5t
10/12/05, 20:28
Origineel geplaatst door CharlieRoot
een goed script maken is voor mij zelf geen probleem.

Het gaat om mijn klanten. Wil dus iets server-globaals waarmee ik die checks kan doen.

Ik bedoel het dus anders. In php.ini heb je de configuratie directive sendmail_path. Daar kun je dus bijvoorbeeld parameters aan je sendmail commando toevoegen, maar ook eigen script aanroepen die de data nogmaals controleert.

Punt is natuurlijk wel hoe je weet dat data in orde is of niet. Misschien niet helemaal de bedoeling maar wel effectief is het filteren van CC en BCC adressen.

Nadat de controle heeft plaats gevonden pipe je het gebeuren door naar de sendmail binary.

Capiche?

Herbert
10/12/05, 21:03
Origineel geplaatst door iDiensten
Voor zover bij mij bekend zou het wel mogelijk moeten zijn op enige manier een limiet in te stellen op het maximaal aantal mail adressen.
Hoe? Don't ask, nooit meer heen gezocht.

Ik gebruik sendmail als MTA en ik heb een limit van 5 in gesteld doormiddel van: O MaxRecipientsPerMessage=5
Als er nu meer dan 5 mail adressen instaan dan wordt de mail rejected.
Dit is een oplossing om spam tegen te gaan, maar eigelijk niet de goede.

Herbert
11/12/05, 10:34
Even een vraagje nog.
Kan me iemand een PM sturen hoe je een mail form kunt testen of deze spam tegen houd?
Het gaat erom wat je in moet vullen bij:
1. Naam:
2. E-Mail:
3. Bericht:
Ik heb hier enkele mailforms op de server gevonden die ik wil testen.
Alvast bedankt

AlexanderOnline
11/12/05, 18:55
Wij hebbe dit laatst ook gwhad, vee lspam mail naar @aol enzo, en het leek gedaan te zijn door een PHPnuke lek

MaffeMuis
11/12/05, 21:58
Origineel geplaatst door AlexanderOnline
Wij hebbe dit laatst ook gwhad, vee lspam mail naar @aol enzo, en het leek gedaan te zijn door een PHPnuke lek

Niet alleen een PHPnuke lek. Gewoon brakke scripting van klanten.
dat bekende webwinkelscript heeft er ook last van. En zelf gemaakte scripjes ook.

En soms krijg je reactie's als, ja maar is een heel bekent script dat door veel mensen wordt gebruikt, dus dat kan niet. Eisen ze hun site per direct online.

En dan de klant maar uitleggen dat ze ook update's moeten uitvoeren, als ze zoiets gaan plaatsen.

Ik probeer dit nog steeds zoveel mogelijk op te vangen via de mod_security rules.

veenman
11/12/05, 22:23
Ik zit te twijfelen om dit probleem als PHP-bug te submitten, feitelijk staat php toe dat er bij de headers door een extra newline over kan worden gegaan op de body, en dat is strict genomen een bug. Wat denken jullie, submitten als bug of niet?

iDiensten
11/12/05, 23:18
Origineel geplaatst door skunkah
Ik zit te twijfelen om dit probleem als PHP-bug te submitten, feitelijk staat php toe dat er bij de headers door een extra newline over kan worden gegaan op de body, en dat is strict genomen een bug. Wat denken jullie, submitten als bug of niet?


ze zouden het script zo kunnen aanpassen dat je standaard maar 1 iemand kunt mailen, tenzij je een 2e argument meegeeft die je op true zet waarna je regeleindes enzo kunt gebruiken....
maar of ze het gaan doen :P

(en zie ook de post NA mij :P... die nog maar eens netjes uitlegt waarom ze het waarschijnlijk niet gedaan hebben :P)

Digiover
11/12/05, 23:37
Origineel geplaatst door skunkah
Ik zit te twijfelen om dit probleem als PHP-bug te submitten, feitelijk staat php toe dat er bij de headers door een extra newline over kan worden gegaan op de body, en dat is strict genomen een bug. Wat denken jullie, submitten als bug of niet?

Feitelijk is het geen bug in de PHP mail()-functie. Heb je de mailinglists en fora er op na geslagen, bij php.net is hier heel veel informatie over te vinden.
Overigens bestaat het lek niet alleen in de PHP mail()-functie, maar ook in ASP's CDONTS enz. Dit is al jaren geleden ontdekt en bekend gemaakt.

mauriceb
12/12/05, 00:09
Onlangs hebben wij dit probleem ook gehad, er bleek ook een zelf gefabriceerd mailscript van een klant niet helemaal waterdicht te zijn.

Ik zat er nu over te denken om een script te maken die alle php files op de server afgaat en op zoek gaat naar de 'mail' functie. Volgens mij zou je de herkomst van de variabelen die gebruikt worden kunnen terugzoeken en zo niet veilige scripts kunnen achterhalen.

iDiensten
12/12/05, 00:22
Maurice,

doen. Zeker. En daarna te koop aanbieden.

Zeker weten dat je niet de enige bent die het graag wil weten..

mauriceb
12/12/05, 00:35
Ik zal er van de week eens even mee aan de slag gaan. Als er meer geïnteresseerde zijn dan hoor ik dat uiteraard graag :)

Herbert
12/12/05, 00:48
Origineel geplaatst door mauriceb
Ik zal er van de week eens even mee aan de slag gaan. Als er meer geïnteresseerde zijn dan hoor ik dat uiteraard graag :)
Bij deze dan..

Dillard
12/12/05, 01:22
Keep me posted :)

Mark17
12/12/05, 10:18
keep me informed

CharlieRoot
12/12/05, 10:41
Origineel geplaatst door mauriceb
Ik zal er van de week eens even mee aan de slag gaan. Als er meer geïnteresseerde zijn dan hoor ik dat uiteraard graag :)
Bij deze, ook voor hulp bij scripten mag je roepen. :)

mauriceb
13/12/05, 19:12
Nog een vraagje......

hoe uitgebreid zou je zo'n script willen zien?

In de eenvoudige versie zoek je binnen php files naar alle mail() functies en kijk je of er rechtstreeks een post variabele wordt aangeroepen zoals bv:
mail("info@domein","onderwerp",
"bericht","FROM: ".$_POST["email"]);

Maar moeilijker wordt het bij:
$headers = $_POST["email"];
mail("info@domein","onderwerp","bericht","FROM: ".$headers);

Esbes
13/12/05, 20:00
Wij hier nu ook last van, hele IP range blocklisted :(.

Iemand al een goede oplossing middels Mod_Security rules?

Hostingprovider
07/02/06, 23:22
Zijn er nog ontwikkelingen ? Wij hebben hier ook last van.

RayManZ
19/05/06, 18:59
*kick :)*

Digiover
19/05/06, 20:32
Zijn er nog ontwikkelingen ? Wij hebben hier ook last van.
Welke provider heeft er geen last van kan je eerder vragen...

Er is een Cpanel patch voor php's mail() functie, waarmee sowieso de domeinnaam waar het script staat in een X-header geplaatst wordt.

http://choon.net/php-mail-header.php

Een script dat alle .php bestanden afzoekt op "foutief" gebruik van de mail() functie lijkt me vrij zinloos (hoewel het initiatief natuurlijk goed is): er is een ongelimiteerd aantal mogelijkheden dat fout kan zijn.


mail($to,$subject,$message, ."From: ".$_POST['from']);kan ook geschreven worden als
$from = $_POST['from'];
mail($to,$subject,$message, ."From: ".$from);Hoe laat je een automated script controleren of er bijvoorbeeld wel een trim() op $_POST['from'] heeft plaats gevonden?

crazycoder
19/05/06, 20:44
mail($to,$subject,$message, ."From: ".$_POST['from']);kan ook geschreven worden als
$from = $_POST['from'];
mail($to,$subject,$message, ."From: ".$from);Hoe laat je een automated script controleren of er bijvoorbeeld wel een trim() op $_POST['from'] heeft plaats gevonden?
Dat is op zich wel mogelijk, maar dat is niet zo'n heel erg simpel script. Toch zal je een script IMO met de hand moeten bekijken om het echt te beoordelen. Het script waar mail () wordt gebruikt kan best een bestand aanroepen met functies die alle input waar nodig aanpast.
Om dat nu even helemaal met een automatisch script te doen... wel een leuke uitdaging die wellicht geld waard is.

Maar het kan een beter idee zijn om de mail() functie van PHP aan te passen. Ben daar al mee bezig geweest maar echt optimaal was het nog niet :)

Digiover
19/05/06, 21:58
Maar het kan een beter idee zijn om de mail() functie van PHP aan te passen. Ben daar al mee bezig geweest maar echt optimaal was het nog niet :)
Ben je zelf bezig geweest, of heb je een bestaande patch gebruikt? Onze ideeen gaan richting het porten van de Cpanel patch naar de Windows versie van PHP en dan zelf PHP compileren. Maar hieromtrent is nog niks zeker.

Dus als je er ervaringen mee hebt, dan hoor ik dat graag :)

iDiensten
19/05/06, 22:11
hier inmiddels met mod_security geen last meer van. Die scanned gewoon op de BCC regels en geeft een 401 af als er dus iets mis is....

Moet zeggen dat ik per dag nog aardig wat mailtjes krijg ervan (via .htaccess 401 even naar mail).

crazycoder
19/05/06, 22:26
Ben je zelf bezig geweest, of heb je een bestaande patch gebruikt? Onze ideeen gaan richting het porten van de Cpanel patch naar de Windows versie van PHP en dan zelf PHP compileren. Maar hieromtrent is nog niks zeker.

Dus als je er ervaringen mee hebt, dan hoor ik dat graag :)
Eigen materiaal natuurlijk.. wat anders..

De bestaande patches die ik heb gezien doen meestal niet veel meer dan het lekke script aanwijzen. Reuze handig, maar dan is het te laat.

Verder ben ik niet overtuigd van de mening dat het uitfilteren van \r en \n voldoende is. Zal eens een paar scripts aanpassen zodat de gepostte data zichtbaar wordt, daar kan je heel veel van leren. Ze versturen namelijk net zo gemakkelijk headers mee via de body van de email, verder zijn ze vindingrijker dan alleen dat..

Wat mij opvalt is dat er een aantal pogingen worden gedaan om een form te misbruiken, even later komen ze terug voor meer :-)

Voorlopig heb ik andere dingen aan mijn hoofd.. zodra ik weer wat tijd heb ga ik er verder aan puzzelen.. zou wel cool zijn om een patch aan te leveren die in de volgende versie van PHP komt :-)


hier inmiddels met mod_security geen last meer van. Die scanned gewoon op de BCC regels en geeft een 401 af als er dus iets mis is....

Moet zeggen dat ik per dag nog aardig wat mailtjes krijg ervan (via .htaccess 401 even naar mail).
Er wordt veel meer gebruikt dan alleen bcc....

Spammerts blijven het op meerdere manieren proberen. Hebben ze eenmaal een form gevonden dan kan het zijn dat ze er een week oid niets mee doen om dan ineens terug te komen.

Herbert
20/05/06, 12:38
Ik maak nu ook gebruik van mod_security
Is er iemand hier die de .conf kan posten als voorbeeld ?
Ik heb er een regel ingezet maar ik weet niet of dit voldoende is?
SecFilterSelective ARGS_VALUES "\n[[:space:]]*(to|bcc|cc)[[:space:]]*:.*@"