Dneska se naučíme, jak být správný e-mailový detektiv. Naučíme se, jak řešit a vyhledávat spam za pomocí příkazové řádky.To se bude hodit, když vám VPS Centrum pošle e-mail, že nějaké vaše schránky nebo web rozesílají spam.
Když se to stane, tak je potřeba:
- Najít příčinu a konkrétní zdroj – Jedná se o infikovaný web, nezabezpečený formulář nebo posílá spam konkrétní e-mailová schránka?
- Smazat infikovaný soubor, zabezpečit webový formulář nebo přeheslovat e-mailovou schránku
- Vyčistit e-mailovou frontu a napsat nám, jaké kroky jste učinili, abyste tomu zamezili
Doporučujeme přečíst i náš článek ohledně e-mail Blacklistu, jak se na ně člověk dostane, jak se ze seznamu odstraní nebo si povíme preventivní opatření. Případně náš článek, jak zlepšit doručitelnost e-mailu pomocí SPF, DKIM a DMARC záznamů.
Jak najít zdroj spamu?
Jako první se musíme podívat do e-mailové fronty, kde najdeme tzv. ID e-mailu.
VPS Centrum
Vyzkoušejte zdarma naši aplikaci pro správu serveru a domén. Budete si připadat jako zkušený administrátor.
Na postiženém serveru zadáme na SSH příkaz:
mailq
Ten zobrazí veškeré e-maily ve frontě. Někdy jich tam je spousty, tak užitečný příkaz je tail 20. Tento druhý příkaz nevypíše celou e-mailovou frontu, ale pouze posledních 20 e-mailů.
mailq | tail -20
ID zprávy najdete hned na začátku výpisu, takže jej stačí zkopírovat a pak pomocí příkazu postcat zjistíme o dané zprávě více informací. Nejdůležitější informace jsou hned na začátku zprávy, takže místo doplňujícího příkazu tail využijeme head.
postcat -q BCEB97F682 | head -50
root@lan04-tomas-haubert ~ # postcat -q D0DC5879C3 | head -50
*** ENVELOPE RECORDS deferred/D/D0DC5879C3 ***
message_size: 2383 753 1 0 2383 0
message_arrival_time: Fri Jun 4 10:45:56 2021
create_time: Fri Jun 4 10:45:56 2021
named_attribute: log_ident=D0DC5879C3
named_attribute: rewrite_context=remote
sender: spam@saboo.cz
named_attribute: encoding=8bit
named_attribute: log_client_name=localhost.localdomain
named_attribute: log_client_address=127.0.0.1
named_attribute: log_client_port=40840
named_attribute: log_message_origin=localhost.localdomain[127.0.0.1]
named_attribute: log_helo_name=localhost
named_attribute: log_protocol_name=ESMTP
named_attribute: client_name=localhost.localdomain
named_attribute: reverse_client_name=localhost.localdomain
named_attribute: client_address=127.0.0.1
named_attribute: client_port=40840
named_attribute: server_address=127.0.0.1
named_attribute: server_port=10025
named_attribute: helo_name=localhost
named_attribute: protocol_name=ESMTP
named_attribute: client_address_type=2
named_attribute: dsn_orig_rcpt=rfc822;janik@vas-hosting.cz
original_recipient: janik@vas-hosting.cz
recipient: janik@vas-hosting.cz
Takto vypadá výstup pokud e-mail odesílá konkrétní schránka. Víme, kde je problém a pro vyřešení stačí dané schránce změnit heslo.
Co dělat, když spamovala e-mailová schránka?
Pokud spamovala e-mailová schránka, tak postup řešení je následovný.
Změna hesla
Jako první musíme k dané schránce změnit heslo. Nejlepší heslo je náhodně vygenerované. Často má schránka slabé heslo a někomu se podaří cracknout a pak rozesílá spam, dokud jej nikdo nezastaví.
Doporučujeme přečíst náš nedávný článek, jak pracovat s hesly.
Freelo - Nástroj na řízení úkolů a projektů
Přidej se, pozvi svůj tým a klienty, rozděl práci a sleduj, jak se úkoly dají do pohybu.
Kontrola veškerých zařízeních
Může se stát, že na nějakém zařízení máte nějaký malware. Je tedy nutné většinu zařízení zkontrolovat, jestli nemají škodlivý software nainstalovaný. Nezapomeňte, že i mobilní zařízení mohou mít malware.
Doporučujeme projet zařízení dostupným antivirem a ověřit si, že přístupové údaje neposílá kam nemá.
Kontrola wifi zabezpečení
Další možností je přítomnost útočníka ve WiFi síti. Pokud tam máte slabé zabezpečení nebo slovníková hesla, tak existuje možnost, že útočník odposlouchává vaší síť. Pokud tedy veškerý přenos není přes HTTP, tak může odposlouchávat a odcizit vaše hesla.
Pokud máte zabezpečení WPA/2 a silné heslo, které se ve slovníku nenachází, tak šanci útočníkům pomalu nedáte.
Teď si ukážeme, jak takový spam vypadá, pokud za něj může PHP skript. (Zvýrazněný řádek)
*** ENVELOPE RECORDS deferred/F/F25798856B ***
message_size: 1058 738 1 0 1058 0
message_arrival_time: Fri Jun 4 12:43:48 2021
create_time: Fri Jun 4 12:43:48 2021
named_attribute: log_ident=F25798856B
named_attribute: rewrite_context=remote
sender: info@fortnite.sk
named_attribute: log_client_name=localhost.localdomain
named_attribute: log_client_address=127.0.0.1
named_attribute: log_client_port=41498
named_attribute: log_message_origin=localhost.localdomain[127.0.0.1]
named_attribute: log_helo_name=localhost
named_attribute: log_protocol_name=ESMTP
named_attribute: client_name=localhost.localdomain
named_attribute: reverse_client_name=localhost.localdomain
named_attribute: client_address=127.0.0.1
named_attribute: client_port=41498
named_attribute: server_address=127.0.0.1
named_attribute: server_port=10025
named_attribute: helo_name=localhost
named_attribute: protocol_name=ESMTP
named_attribute: client_address_type=2
named_attribute: dsn_orig_rcpt=rfc822;janik@vas-hosting.cz
original_recipient: janik@vas-hosting.cz
recipient: janik@vas-hosting.cz
*** MESSAGE CONTENTS deferred/F/F25798856B ***
Received: from localhost (localhost.localdomain [127.0.0.1])
by lan04.vas-server.cz (Postfix) with ESMTP id F25798856B
for <janik@vas-hosting.cz>; Fri, 4 Jun 2021 12:43:48 +0200 (CEST)
X-Spam-Flag: NO
X-Spam-Score: 0.329
X-Spam-Level:
X-Spam-Status: No, score=0.329 required=3
tests=[HEADER_FROM_DIFFERENT_DOMAINS=0.249, NO_RELAYS=-0.001,
PP_MIME_FAKE_ASCII_TEXT=0.081] autolearn=no autolearn_force=no
Received: from lan04.vas-server.cz ([127.0.0.1])
by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id mjcL8iAQzBfz for <janik@vas-hosting.cz>;
Fri, 4 Jun 2021 12:43:48 +0200 (CEST)
Received: by lan04.vas-server.cz (Postfix, from userid 33)
id C45FC8856D; Fri, 4 Jun 2021 12:43:48 +0200 (CEST)
To: janik@vas-hosting.cz
Subject: Simple Spam via PHP
X-PHP-Originating-Script: 33:spamujeme.php
From: spam@sabo.cz
Message-Id: <20210604104348.C45FC8856D@lan04.vas-server.cz>
Date: Fri, 4 Jun 2021 12:43:48 +0200 (CEST)
Tohle je spam vygenerovaný pomocí PHP skriptu
*** HEADER EXTRACTED deferred/F/F25798856B ***
Zvýrazněný řádek, nám říká, že e-mailová zpráva pochází z PHP skriptu, který se jmenuje “spamujeme.php”.
Co dělat, když spamoval web/skript?
Když nám spamuje web, tak existují 2 hlavní viníci, které rozesílání nevyžádané pošty způsobují.
- Zranitelnost webu v podobě nahrání škodlivého skriptu.
- odposlechnutí přístupových údajů na FTP/administrace,
- nezabezpečený webový formulář.
Nahrání škodlivých souborů
Druhým nejčastějším problémem je neautorizované nahrání souboru přímo na web. To znamená, že útočník si může nahrát backboor do vašeho webu nebo právě spamovací skript, který bude zneužívat váš web a IP adresu.
Tady přichází na řadu kontrola FTP. Ať už používáte FTP klienta nebo webové rozhraní, tak všude uvidíte, kdy naposledy se soubor měnil nebo nahrával. To nám pomůže při detektivní práci.
Pokud jste na web dlouhé týdny nic nepřidávali, a uvidíte soubor se jménem xmadnez.php, tak už jenom název prozradí, že se nejedná o váš soubor. Taky vidíte, že byl nahrán v době, kdy začal web spamovat.
Názvy soubory jsou vždycky jiné, ale datum poslední změny nikdy nelže. Tady je důležité znát svůj web a vědět, jaké soubory k webové prezentaci patří, protože to váš hostingový provider nemůže vědět. Případně se obraťte na vašeho správce webu nebo programátora.
Jakmile podezřelý soubor najdete, tak ho musíte nejdříve odstranit a pak hledat, jak se tam vlastně dostal. Nejčastěji bývá chyba v nastavení PHP nebo zranitelnost aplikace, ale to v dnešním článku nedokážeme obsáhnout.
Obvykle se provádějí tzv. penetrační testy, které dokážou odhalit, jestli je web náchylný k podobným chybám. Můžete mrknout na základní typologie bezpečnostních testů. Nástroje, které poslouží k testům je např. známynmap neboKali Linux, které už mají potřebné nástroje implementované
Odposlechnuté přístupové údaje (FTP, administrace)
Poslední možností je odposlechnutí nebo cracknutí hesel na FTP, do administrace nebo aplikace 3. stran. Např. se nedoporučuje ukládat hesla do FTP klientů, jako je WinSCP nebo Filezilla, protože většina malwaru umí taková hesla odposlechnout.
Pokud lezete na stránky s torrenty, seriály zdarma a kliknete kam nemáte, tak se k vám může dostat odposlouchávací malware, který sbírá vaše přístupové údaje kamkoliv na internet jdete.
Ať už to je Netflix, administrační prostředí vašeho webu nebo FTP. Takové údaje pak útočník může někomu prodat nebo je použije k vlastnímu prospěchu, jako je rozesílání spamu.
Tady se doporučuje nainstalovat bezpečnostní antivir, který vás bude proti takovým virům chránit. Pokud nemůžete přijít, na to, jak se tam soubor dostal, tak nejlepší řešení je změnit hesla k FTP, administračnímu prostředí a následně si počítač projet antivirem.
Zabezpečení webového formuláře
Většina webů má kontaktní formulář pomocí kterého mohou návštěvníci posílat dotazy nebo poptávky. Je to nedílná součást marketingu, jenže bohužel i největší rozesílač spamu.
Pokud takový formulář na webu máte, tak jej musíte i správně zabezpečit. To lze udělat vícero způsoby, ale ten nejrozšířenější je reCAPTCHA od Googlu.
Stačí zaregistrovat svůj web, ověřit doménu a nakonec formulář s tímto nástrojem propojit. Tady je např. návod, jak zprovoznit reCAPTCHU na WordPressu.
Další možnosti jsou kontrolní otázky či nějaké počty, ale chytrý spammer si může web otestovat, zjistí kolik tam má otázek a pak své spamboty upravit, takže takové řešení nedoporučujeme.
Cloudflare se snaží přijít na chytřejší a rychlejší řešení, které by nám život na internetu zase zpříjemnili. Průměrnému člověku vezme jedna challenge kolem 32 vteřin a podle jejich propočtů ztratíme 500 let života každý den, jen abychom potvrdili, že jsme lidi.
Pokročilé vyhledávání v mail.logu
Na závěr si povíme ještě pár šikovných příkazů, které používáme pro prohledávání e-mailových logů. Vyhledávání v Linuxu je velice rychlé a hlavně pohodlné.
Důležitý log najdete na SSH ve složce /var/log/mail.log nebo se připojíte do VPS Centra > Přehledy > mail.log
Pokud chceme vyhledat e-maily, které se vrátily (bounced), tak použijeme tento příkaz.
cat /var/log/mail.log | grep bounced
Nebo ve VPS Centru…
Další spojení, která indikují problém s odesíláním:
- deferred – často vyskočí, když se dostanete na email Blacklist
- delayed – e-mail se nedaří zatím odesílat
- blocked – spojení se serverem bylo zablokované
Příkazy by tedy vypadaly..
cat /var/log/mail.log | grep defererd
cat /var/log/mail.log | grep delayed
cat /var/log/mail.log | grep blocker
Jak vyprázdnit e-mailovou frontu
Posledním krokem je vyprázdnění e-mailové fronty. Nejjednodušším řešením je přihlášení do VPS Centra > Správa server > E-mail.
Stačí zadat schránku, která rozesílala spam a během chvilky celou e-mailovou frontu této schránky promaže.
Další možností je pomocí SSH příkazu:
# cd /var/spool/mqueue/
# ls
# rm *
Tímto způsobem vymažete celou e-mailovou frontu od každé schránky / domény.