To nie są teoretyczne rozważania ze szkoleń. To dokumentacja krytycznych luk konfiguracyjnych, na które natrafiam w polskich firmach B2B. Zobacz, jak blisko katastrofy jest typowa organizacja.
Firma zatrudniająca 450 osób, produkująca części dla niemieckiego sektora automotive. Uruchomili audyt bezpieczeństwa pod presją zewnętrznego partnera (wymogi TISAX). Dział IT raportował, że "systemy są chronione najlepszym antywirusem klasy EDR", a kopie zapasowe wykonują się automatycznie na serwer NAS wpięty do domeny.
Podczas testów penetracyjnych uzyskałem standardowe, niskoprzywilejowane konto pracownika działu HR. Przeskanowałem z niego sieć Active Directory. Wykryłem, że hasło potężnego, systemowego konta KRBTGT (Kerberos Key Distribution Center) nie było zmieniane od 8 lat — czyli od momentu postawienia serwera.
Wykorzystując tę lukę konfiguracyjną, spreparowałem tzw. Złoty Bilet (Golden Ticket). Przejąłem uprawnienia Domain Administrator w zaledwie 4 godziny od rozpoczęcia testów. System bezpieczeństwa klienta nie wygenerował żadnego alertu, ponieważ użyłem legalnych protokołów autoryzacji z nielegalnymi uprawnieniami.
Natychmiast przerwano testy by usunąć wektor ataku. Wdrożyłem z inżynierami klienta zautomatyzowany skrypt podwójnego resetu hasła KRBTGT (by wyczyścić z pamięci maszyn sfałszowane bilety). Następnie zaprojektowałem i wdrożyłem model warstwowy (Tiering) w AD, który całkowicie odcina uprawnienia administracyjne od zwykłych stacji roboczych, uniemożliwiając kradzież hashy (Pass-the-Hash).
Udany atak tego typu ze strony gangu ransomware doprowadziłby do jednoczesnego zaszyfrowania całej sieci produkcyjnej oraz podpiętych kopii zapasowych (NAS).
Rozwijana od 6 lat platforma SaaS do wymiany dokumentów księgowych dla polskich firm. Aplikacja zbudowana w starszej wersji PHP, stopniowo migrowana w konteneryzację chmurową. Ze względu na restrykcje i wytyczne KNF, Zarząd zlecił audyt bezpieczeństwa zgodny z metodyką OWASP ASVS.
Podczas przeglądu logiki aplikacji natrafiłem na funkcję umożliwiającą pobieranie własnych faktur przez parametryzowany adres URL: download.php?file=faktura_123.pdf. Brakowało tu jakiejkolwiek skutecznej walidacji ścieżki i oczyszczania zmiennych wejściowych (tzw. Sanity Check).
Wstrzykując payload ?file=../../../../etc/passwd oraz ?file=../config/database.php, byłem w stanie "wyjść" poza główny katalog publiczny serwera WWW. To pozwoliło mi na pobranie pliku konfiguracyjnego bazy danych z zapisanymi w nim jawnym tekstem hasłami do serwera MySQL. To dawało nieograniczony dostęp do prywatnych danych 40 000 podmiotów gospodarczych. Potencjalny cyberprzestępca z łatwością skopiowałby bazę i wykorzystał technikę Double Extortion do wymuszenia okupu.
Przekazałem zespołowi deweloperów bezpieczną konstrukcję kodu, polegającą na mapowaniu fizycznych nazw plików do losowych kluczy ID w bazie. Zlikwidowano pobieranie po rozszerzeniach i ścieżkach fizycznych. Dodatkowo wdrożyłem reguły WAF (Web Application Firewall), automatycznie ucinające połączenia ze wzorcem ataku "dot-dot-slash".
Szybka łata zablokowała krytyczną podatność przed tym, jak mogłyby wykorzystać ją zautomatyzowane boty skanujące sieć. Utrzymano ciągłość zgodności z rygorystycznymi wymogami KNF.
Gdyby doszło do pełnego wycieku w tej branży, utrata zaufania zabiłaby spółkę w jeden dzień, a kary RODO przekroczyłyby setki tysięcy Euro za rażące zaniedbanie.
Zleć Pentest AplikacjiKlient obsługiwał kluczową dla swojego segmentu giełdę asortymentu w oparciu o mocno zmodyfikowanego CMS-a WordPress z wieloma wtyczkami z rynków zewnętrznych. Z powodu cięcia kosztów przez wcześniejszą agencję IT, architektura funkcjonowała na przestarzałym, mocno przeludnionym serwerze współdzielonym (Shared Hosting) podpiętym bezpośrednio do publicznego Internetu z minimalną ochroną.
Działając jako atakujący nie wziąłem na cel samego kodu klienta. Zamiast tego skupiłem się na środowisku hostingu. Brak izolacji pomiędzy "sąsiadami" na serwerze współdzielonym oraz złe uprawnienia do odczytu plików (CHMOD 644 i 755 w nieodpowiednich miejscach) pozwoliły mi na wejście przez słabszą witrynę innej firmy na tej samej maszynie. Stamtąd, z poziomu terminala przeskoczyłem do głównego katalogu klienta i odczytałem jawnie zachowane dane dostępowe do bazy danych z pliku wp-config.php. Pozwalało to na bezpośrednie modyfikowanie cen hurtowych na sklepie w czasie rzeczywistym lub kradzież bazy e-mail z pełnymi historiami kontraktów i przekazanie ich konkurencji.
Zaprojektowałem i asystowałem przy natychmiastowej migracji klienta na wyizolowane, twarde środowisko dedykowane (VPS Cloud z zaporami sieciowymi blokującymi port 3306 z zewnątrz). Dokonałem hardeningu instalacji samego WordPressa: zmieniłem unikalne przedrostki baz danych, zahashowałem dostęp konfiguracyjny, wdrożyłem MFA (Multi-Factor Authentication) na zapleczu i uciąłem 6 niepotrzebnych, archaicznych endpointów API z wtyczek firm trzecich, które stwarzały realne wektory ataków RCE.
Zabezpieczono największą rynkową przewagę hurtowni – poufność bazy klientów i dedykowane zniżki asortymentu przed atakami sabotażowymi i szpiegostwem korporacyjnym.