Odesílání spamu přes phpmailer.php – jak zakázat?

MaK.
25. úno 2019 08:50 #139167
Ahoj,

z některých mých domén začal odcházet spam, podle hostingu útočníci prý zřejmě zneužívají phpmailer.php. Pokud ale tuto funkci zakážu, přestanou mi zřejmě chodit i systémové zprávy, např. z Akeeba Admin Tools, info o nových verzích Joomly,…

Děje se to na starších 1.5 verzích i na novějších 3.x, přitom jsem se snažil (alespoň novější verze) udržovat aktualizované.

Jak toto prosím řešíte? Znamená to, že se útočníci nabořili do webu, anebo jen zneužívají zmíněný soubor?

MaK.

--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. úno 2019 10:06 #139168
Nejspíš to vypadá, že vám stránky opravdu někdo napadl.
Nejdříve si změňte hesla do joomly, hostingu, Ftp atd.
Pak můžete celý webový prostor k sobě a projeďte ho antivirem.

Obecně můžete postupovat dle Bongova návodu

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od MaK.
25. úno 2019 10:24 #139169
Dík za tip. Postup znám. Děje se mi to ale u jednoho webu, kde je nejnovější verze Joomly, Akeeba Admin Tools, upravená admin URL, měl jsem tam i 2faktorové přihlašování. Nechce se mi věřit, že tohle všechno někdo překonal.

Možná bude spíš díra v nějakém delší dobu neaktualizovaném pluginu nebo komponentě, které dokáží volat phpmailer.php a využívat jej. Jen ještě odhalit, přes co to lítá :silly:

Byť si nejsem vědom, že mám někde nějaký kontaktní formulář veřejně on-line (není ani v sitemap, ani v indexu vyhledávačů), je možné, že když zná útočník jeho přímou URL, dostane se na něj a nějak dokáže zneužít.

Dá se nějak zjistit, které všechny URLs Joomla generuje a jsou veřejně dostupné?

MaK.

--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Ernst
25. úno 2019 10:54 #139170

Dá se nějak zjistit, které všechny URLs Joomla generuje a jsou veřejně dostupné?

Myslím si že ne, ale mohu se mýlit.

Zkusil jste tohle?

Pak můžete celý webový prostor zkopírovat k sobě a projeďte ho antivirem.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od MaK.
25. úno 2019 11:03 #139171
Ne, nemám teď po ruce žádný antivir, kterým bych obsah mohl „projet“. Musel bych sehnat nějakou mašinu s Win. Popřemýšlím, jak to zrealizovat. Ale jak jsem psal, je, doufám, takřka nemožné, aby běžní roboto-útočníci pronikli až na FTP a něco si tam doplnili, aspoň u té nové verze Joomly snad ne. Nevím, jak by to udělali.

Zkusím možná ještě povypínat nějaké pluginy. Anebo rovnou zakážu phpmailer.php hromadně a bude po ptákách. Našel jsem např, toto řešení www.itoctopus.com/how-to-completely-disa...ctionality-in-joomla

A lidi, nevykejte mi prosím, nejsem snad zase tak stár :)

MaK.

--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Rudolf
25. úno 2019 11:54 #139172
URL adresu si robot najde sám a nemusí být ani nikde v sitemapě.

Prostě jakmile máte povolený formulář (např. rsform) a nemáte ho chráněný, tak i když nemáte nikde veřejně URL adresu, říkáte si o malér. Tuto URL vám totiž odhalím během 30 sekund, stačí přece zjistit že tam máte povolený rsform formulář a nemusí být nikde uveřejněný pomocí položky menu :)

Postup od Bonga je dobrý, pro bussines weby, kdy je třeba rychlost a 100% kvalita používám trochu profesionálnější postup - online službu myjoomla a nasazení RSfirewall. (Mám licence i na J15, které již nezískáte). Za celou dobu (asi 6 let co jsem toto řešení vyvinul a začal nasazovat ještě v Easysoftware a nyní v Minion) se mi nestalo, že byl takto chráněný web napaden.

Pro správné nasazení myjoomla musíte ale rozumět kódu všech programů a rozhodnout zda navržené a odhalené hacky jsou hacky nebo ne == pokud nejste programátor nebo nemáte logické myšlení, musíte mít původní verze programů, aby jste mohl porovnat.

Samozřejmě je třeba k tomu přidat další kroky - upravený hosting (máme firmu, která se věnuje hostingu a abezpečení joomla webů 15 let), zabezpečenou administraci a další drobné kroky, které Vám doporučí myjoomla.

Můžete také nevyužít tohoto postupu a inspirovat se rady jiných :)

Ale jen pro info:

- pustit na to antivirus zkoušeli naši odborníci na serveru - dopadlo to tak, že jsem odvirovával takto odvirované weby znovu a znovu
- nasadit Akeeba Admin - řešení zdarma a nedostatečné, zkoušel jsem jako první variantu než jsem přešel na placenou verzi RSFirewall


Jinak vykám každému, i když jsem ji skoro v důchodu (jak říkají kolegové) :D
Kromě těch, s kterými se seznámím osobně.


S pozdravem

Rudolf

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Martin70
25. úno 2019 13:49 #139175

MaK. napsal: Anebo rovnou zakážu phpmailer.php hromadně a bude po ptákách.


No ale to potom nebudou fungovat ani systémové maily, ani formuláře na webu, ne?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od MaK.
25. úno 2019 13:53 #139176
Díky za tipy, Rudolfe,

rád bych uvedl na správnou míru, že Akeeba Admin existuje sice v dost omezené verzi i zdarma, avšak mnohem vybavenější je placená verze Pro, kterou používám (cca 1500 CZK / rok), viz www.akeebabackup.com/subscribe/new/atpro.html . Taktéž obsahuje firewall a dalších mnoho funkcí, jako rozšíření od RS. Nemyslím si, že je to špatná komponenta. To by si ji asi nikdo nekupoval a zanikla by.

Z Vaší odpovědi by se dalo chápat, že normální instalaci Joomly je potřeba obalit tunou rozšíření a vlastně ji instalovat nějak jinak, aby byla zabezpečená. To by mohlo znamenat, že J! není pro běžné uživatele vůbec vhodná, což si ale nemyslím.

Nechci se teď pouštět do nějakých diskuzí, ani se učit kódovat weby a tak,… zkusím položit otázku asi nějak jinak.

ad vy/ty – to platilo pro ostatní, s nimiž jsem už na tomto fóru diskutoval před lety.

MaK.

--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od MaK.
25. úno 2019 13:56 #139177
Nebudou, a je mi to fuk, aspoň budu dostávat méně e-mailů. Pokud to nejde vyřešit jednoduše jinak, není zbytí. Žádné formuláře v systému vědomě nepoužívám, případně ty fomuláře používají své procesy mimo phpmailer.php

MaK.

Martin70 napsal:

MaK. napsal: Anebo rovnou zakážu phpmailer.php hromadně a bude po ptákách.


No ale to potom nebudou fungovat ani systémové maily, ani formuláře na webu, ne?


--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od MaK.
25. úno 2019 13:58 #139178
Upravený dotaz:

Jak prosím natvrdo zakázat funkci phpmailer.php? Stačí soubor přejmenovat, odstranit, anebo upravit? Bude změna trvalá nebo se po další aktualizaci J! zase zprovozní?

Díky.

MaK.

--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Cony
25. úno 2019 14:45 #139181
phpmailer.php sám o sobě nic nerozesílá. Je to jen knihovna, kterou Joomla používá pro rozesílku mailů. Ta knihovna pak k posílání buď používá funkci PHP mail, nebo SMTP, dle nastavení v Joomle. Tj. pokud něco komunikuje přímo s phpmailer.php a ne prostřednictvím Joomly, znamená to buď neaktualizované stránky (do phpmailer.php byla tuším loni nějaká záplata), nabo hack.

Pokud to jde přímo z Joomly, tak to jde přes nějaký formulář, ať už je v menu nebo ne. V první řadě bych se snažil zjistit co je to za maily, hosting by měl mít log mailů co odcházej. Z obsahu mailu by se dalo odhadnout, co jej posílá. Případně přepnout Joomlu na SMTP, a kontrolovat v odeslané poště.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od MaK.
25. úno 2019 14:52 #139182
Díky, Cony,

na zkoušku jsem přejmenoval phpmailer.php, ale chodí to dál. Já nevím, co to rozesílá, jsou to hobby weby, tak se v tom nechci moc šťourat. Časem ty weby asi úplně odpískám. Ale jeden z webů je na J!3.9, stále aktualizovaný a taky to z něj chodí. Na hostingu nic moc neporadili. Na SMTP jsem taky zkoušel přepnout, stejně to chodí dál.

Tipuju, že to bude přes nějaký formulář, o kterém však nevím, nikde není normálně vidět, ale někde tam prostě je.

Dá se prosím nějak generálně zakázat veškeré odesílání z Joomly?

MaK.

Cony napsal: phpmailer.php sám o sobě nic nerozesílá. Je to jen knihovna, kterou Joomla používá pro rozesílku mailů. Ta knihovna pak k posílání buď používá funkci PHP mail, nebo SMTP, dle nastavení v Joomle. Tj. pokud něco komunikuje přímo s phpmailer.php a ne prostřednictvím Joomly, znamená to buď neaktualizované stránky (do phpmailer.php byla tuším loni nějaká záplata), nabo hack.

Pokud to jde přímo z Joomly, tak to jde přes nějaký formulář, ať už je v menu nebo ne. V první řadě bych se snažil zjistit co je to za maily, hosting by měl mít log mailů co odcházej. Z obsahu mailu by se dalo odhadnout, co jej posílá. Případně přepnout Joomlu na SMTP, a kontrolovat v odeslané poště.


--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Martin70
25. úno 2019 14:55 - 25. úno 2019 14:56 #139183

MaK. napsal: Jak prosím natvrdo zakázat funkci phpmailer.php? Stačí soubor přejmenovat, odstranit, anebo upravit? Bude změna trvalá nebo se po další aktualizaci J! zase zprovozní?


Podle mě (a píšou to i v tom článku) - pokud přejmenuješ phpmailer, tak vždy po upgradu Joomla to budeš muset udělat znovu.

Pokud to chceš odstranit "hlava nehlava", napadlo mě v Joomle v Globálním nastavení nastavit SMTP (místo PHP mail) a nevyplňovat SMTP user ani heslo. Pak se prostřednictvím Joomla nebude dát nic odesílat, ne?

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od Pavel [byPV]
25. úno 2019 14:59 #139184
Já osobně se domnívám, že na to jdete úplně špatně...

Pokud chcete skutečně zakázat odesílání e-mailů, tak nejjistější řešení je zakázat to na úrovni serveru/hostingu. Knihovna PHPMailer je integrovaná v Joomla! na úrovni jádra a tudíž tam být musí a pravděpodobně by po smazaní Joomla! padla a bylo by nutné více úprav. Také můžete zkusit vypnout odesílání e-mailů v konfiguraci Joomla!, ale pokud někdo využívá knihovnu PHPMailer napřímo (a nebo ji ani nevyužívá a využívá PHP funkci mail()), tak tím nic nevyřešíte.

Pokud někdo skutečně zneužívá nějakou chybu v této knihovně (podle mého nepravděpodobné), tak je možné ji zkusit aktualizovat, ale v poslední verzi Joomla! je poslední verze PHPMailer ve větvi 5.x, tudíž není kam aktualizovat a nevím jestli je větev 6.x plně kompatibilní.

Spíš bych viděl na problém v tom, že se Vám prostě do webu někdo naboural a má tam teď umístěné skripty, které mu umožňují provádět v systému cokoli. Tzn., že i kdyby jste se PHPMaileru zbavil, tak začne posílat maily jinak a nebo si tam případně PHPMailer znovu nahraje ;-). Dokud tedy ten škodlivý kód nenajdete, nezbavíte se ho a nezalepíte cestu, kudy se Vám tam dostal (nejjednodušší je nahlédnout do access.log v době, kdy se rozeslal SPAM), tak je vše co uděláte jen dočasné řešení. A navíc ani zákaz rozesílání e-mailů nijak nezmění fakt, že má například někdo plný přístup k Vašemu webu a může tam cokoli.

Nedívejte se však na to jen z pohledu, že jediná možnost jak se k Vám nabourat, je přes formuláře na webu. Zranitelný může být naprosto jakýkoli skript na Vašem webu a je úplně jedno co ten skript dělá, zda-li je na první pohled přístupný z URL (to vážně nemusí) a nebo jestli je součástí jádra Joomla!, externí knihovny a nebo nějaké šablony, komponenty, modulu či pluginu.

Navíc, pokud máte jak sám píšete, některé weby na zastaralých verzích Joomla! a nezáplatujete si je manuálně, tak je dost možné, že se Vám tam útočník dostal přes ně. A pokud ty weby sdílí hosting (tzn. např. více domén a složek na jednom placeném programu), tak dost hostingů co jsem v životě potkal nijak neodděluje tyto weby na úrovni systému a každý web má prakticky plný přístup k ostatním webům okolo. Tím chci říci, že pokud to máte jak popisuji, tak je také klidně možné, že Vám někdo hacknul nezáplatovanou Joomla! 1.5 a z ní se dostal (a něco si nahrál) do ostatních webů.

Tudíž, pokud to tak máte a budete čistit jeden hacknutý web, tak je potřeba zkontrolovat i vše ostatní na stejném hostingu, jinak je otázka času, než se malware zase rozleze po okolí.

Co já mám zkušenost, tak se většina malwaru chová tak, že když útočník najde slabé místo kudy tam něco dostat, tak pak co nejdříve volá vzdálené příkazy, které umožní škodlivému kódu se v různých podobách rozkopírovat na co nejvíce míst a co nejhlouběji do webu (termín "virus" je zde na místě ;-)). Během chvilky může být napadeno třeba 100 souborů a když útočník hodlá rozeslat e-maily a jeden např. nefunguje, tak prostě zvolí jiný a nebo si kdykoli napadne další soubory, aby měl další "zálohu" až na ty původní přijdete a opravíte/smažete. Jsou to hrozní hajzlící a dokud se nezbavíte všeho a naráz a nezalepíte díru kudy přišel první malware, tak to může být, jak se říká, boj s větrnými mlýny :-(.

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.

Odpověď od MaK.
25. úno 2019 15:02 - 25. úno 2019 15:02 #139185
To jsem zkoušel, přepnout na SMTP, ale nepomohlo.

MaK.

Martin70 napsal:

MaK. napsal: Jak prosím natvrdo zakázat funkci phpmailer.php? Stačí soubor přejmenovat, odstranit, anebo upravit? Bude změna trvalá nebo se po další aktualizaci J! zase zprovozní?


Podle mě (a píšou to i v tom článku) - pokud přejmenuješ phpmailer, tak vždy po upgradu Joomla to budeš muset udělat znovu.

Pokud to chceš odstranit "hlava nehlava", napadlo mě v Joomle v Globálním nastavení nastavit SMTP (místo PHP mail) a nevyplňovat SMTP user ani heslo. Pak se prostřednictvím Joomla nebude dát nic odesílat, ne?


--- -- -

Pro možnost přispívání do fóra je nutné: Přihlásit se nebo Vytvořit účet.