Atakujący wypatrują źle skonfigurowanych aplikacji i kradną loginy z pliku .env
Pojawił się „SMTP cracker”, który skanuje listę adresów IP lub adresów URL w poszukiwaniu błędnie skonfigurowanych aplikacji opartych na Laravelu. Atakujący szukają witryn internetowych z włączonym trybem debugowania, który umożliwia nieuprawnionej osobie wyświetlenie ich pliku .env (czyli pliku konfiguracyjnego w Laravelu). Plik .env zawiera zaś bardzo cenne informacje, między innymi dane logowania do takich usług jak AWS, O365, SendGrid, Twilio i wielu innych.
Laravel? Pierwsze słyszę
Więc problem zapewne Cię nie dotyczy. Ale i wtedy warto wiedzieć, że w niebezpieczeństwie znajdują się programiści piszący swoje aplikacje w PHP, z wykorzystaniem tego bardzo popularnego frameworku. Laravel, opracowany przez Taylora Otwella jest przeznaczony do tworzenia aplikacji internetowych. Między innymi zapewnia sterowniki dla SMTP, Mailgun, Mandrill, Amazon SES, funkcji poczty PHP i sendmaila, co pozwala szybko rozpocząć wysyłanie poczty przez wybraną usługę lokalną lub w chmurze.
Niebezpieczne debugowanie
Opcja debugowania jest domyślnie wyłączona w aplikacjach Laravela, ale – jak się właśnie okazuje - wielu użytkowników włącza debugowanie i nie rozumie konsekwencji jakie się z tym wiążą. Włączenie debugowania (ustawienie go na wartość true
) w pliku konfiguracyjnym .env jest bardzo niebezpieczne i absolutnie nie powinno mieć miejsca na maszynach produkcyjnych.
Możesz się upewnić, czy debugowanie jest wyłączone, sprawdzając możliwość odczytania pliku .env w katalogu głównym aplikacji (np.: moja.strona.pl/.env
). Jeśli nie da się go odczytać masz wyłączone debugowanie. Drugim sposobem sprawdzenia jest wysyłanie losowych danych do serwera i przeglądanie odpowiedzi. W odpowiedzi zobaczysz status opcji debugowania, a jeśli debugowanie jest włączone - także wszystkie informacje z pliku .env, w tym loginy i hasła.
SMTP cracker
Skrypt smtp cracker, który - nawiasem mówiąc - nie jest crackerem i pobiera więcej niż tylko dane uwierzytelniające SMTP, wykorzystuje powyższe metody do przeszukiwania listy adresów IP/URL w poszukiwaniu określonych ciągów w odpowiedzi, takich jak PayPal, AWS_KEY, SES_KEY, Twilio, sendgrid, office365, zoho, mailgun i tym podobne.
Na przykład część tego skryptu szuka łańcucha w mailhost i spisuje sobie nasze loginy i hasła do odpowiedniego pliku. Dane wyjściowe są przechowywane w folderze o jakże zaskakującej nazwie Results
. Wyniki są podzielone na grupy. Możemy więc w tym katalogu znaleźć na przykład plik office.txt
, paypal_sandbox.txt
czy aws_access_key_secret.txt
. Wewnątrz tych plików znajdują się oczywiście ukradzione login i hasła oraz wskazana została metoda użyta do wyodrębnienia informacji (np. debug
czy /.env
).
Przebieg ataku
Administratorzy powinni zainteresować się tym jak wygląda sam atak. Atakujący nierzadko instalują wpierw na skompromitowanej maszynie Pythona 2.7 żeby być w stanie uruchomić skrypt. Następnie za pomocą Pip doinstalowują niezbędne moduły, których obecność może wskazywać, że mamy problem:
pip install requests
pip install colorama
pip install bs4
pip install tldextract
Warto także patrzeć w logi serwera WWW czy nie ma czasem podejrzanie częstych prób podglądania pliku .env
jak również POST zawierających ciąg znaków 0x[]:androxgh0st
(string, który jest zakodowany w skrypcie smtp.py
).