Trzy rodziny backdoorów w jednej instalacji WordPress
Strona klienta była niedostępna przez kilka dni. Pod spodem: trzy niezależne rodziny backdoorów, chiński serwer C&C, ukraiński bot na Telegramie i phishing kit podszywający się pod japoński sklep. Wszystko w jednej instalacji WordPress, która z zewnątrz wyglądała na zdrową.
Kiedy klient skontaktował się z nami, nie było jednego objawu „coś nie działa”. Był konkretny, mierzalny problem: witryna firmowa nie odpowiadała. Pod tą awarią kryło się kilkanaście drobnych sygnałów, które pojedynczo nic nie znaczą, ale razem układały się w obraz systematycznego, długoletniego dostępu osób trzecich do serwera. Historię skończyliśmy w jeden dzień. Mechanizm, który dał nam pewność, że problem naprawdę zniknął, zostawiliśmy klientowi na stałe. Jeśli szukasz dokładnie takiej opieki, zajrzyj do naszej oferty utrzymania i rozwoju stron.
W przypadku firmowej strony pełniącej rolę witryny i źródła leadów to prosta droga do mierzalnej straty:
- zero zapytań ofertowych przez cały okres niedostępności
- pozycje w wyszukiwarce do odbudowania przez tygodnie po powrocie (Google wywala z indeksu w kilka godzin, przywraca w kilka tygodni)
- utrata zaufania klientów, którzy w międzyczasie trafili na komunikat błędu
- ryzyko trwałego oznaczenia domeny jako „deceptive site” przez Google Safe Browsing i Microsoft SmartScreen, co blokuje stronę w Chrome, Edge, Firefoxie i w ostrzeżeniach antywirusowych nawet po usunięciu kodu
Nasza robota zaczęła się od wyjścia z awarii: przywrócenie dostępności serwisu dla zwykłego ruchu było pierwszym krokiem, a diagnoza i cleanup toczyły się równolegle, dopiero po uruchomieniu strony.
Branża i kontekst
Klient prowadzi firmowy serwis typu landing + oferta, oparty o WordPressa z Elementor Pro i rodziną wtyczek Jet. Hosting współdzielony. Standardowy stack, który obsługuje setki tysięcy firm w Polsce. Właśnie dlatego ten case jest ciekawy: niczym specjalnym się nie wyróżnia. To mogła być strona dowolnej firmy. Dla porównania, podobny WordPressowy case robiliśmy dla szkoły numerologii: inna branża, ten sam poziom skomplikowania pod maską.
Punkt wyjścia
W serwisie zaczęły się dziać drobne, trudne do powiązania rzeczy:
- okresowo pojawiały się nowe pliki
index.phpw losowych podfolderach wtyczek - plik
license.txtw głównym katalogu miał zerowy rozmiar i był regularnie „muskany” (zmiana timestampu bez zmiany zawartości) co kilkanaście dni - w Google Search Console pojawiały się strony indeksowane po japońsku, których nikt nie publikował
- obok WordPressa, pod
/quiz/, działał quiz „oblicz koszt instalacji fotowoltaicznej” po polsku, choć klient nie zajmuje się fotowoltaiką
Każdy z tych sygnałów osobno można zignorować. Razem to podręcznikowy wzorzec długoterminowej kompromitacji.
Diagnoza: trzy rodziny backdoorów + phishing kit
Dochodzenie pokazało, że serwer został zaatakowany kilkukrotnie na przestrzeni ponad trzech lat, przez różne grupy, z różnymi celami. Poniżej skrócony opis każdej z rodzin, a pod każdym opisem rozwijana sekcja z detalem technicznym dla ciekawych.
Rodzina 1: Japanese SEO cloak + chiński RCE
Główny index.php serwisu, który normalnie uruchamia WordPressa, został przerobiony tak, że trzymał trzy nakładające się warstwy złośliwego kodu. Zwykły użytkownik z Polski widział normalną stronę. Googlebot z Japonii widział fałszywy sklep. Atakujący z właściwym parametrem w URL dostawał zdalne wykonanie kodu.
▸Techniczny deep-dive: trzy warstwy w jednym pliku
- Cloak SEO po japońsku: jeśli żądanie przychodziło z Google.co.jp, Yahoo.co.jp, Bing albo Baidu (sprawdzane po
User-Agent+Referer), serwer odpowiadał innymLocationem niż normalnie i przekierowywał na fałszywy sklep podszywający się pod markę Askul. - „2DUAN” (chińska rodzina): osobny blok z markerami
2DUAN_STARTi2DUAN_END, z zaszytym URLem do serwera C&C zakodowanym w ROT13, kluczem symetrycznym w stałejKKi identyfikatorem instancji w zmiennejNN. Dodatkowo zdalne wykonanie kodu przez parametry?pwd=X&gv=Y(hasło po MD5). - Na końcu: normalny bootstrap WordPressa, żeby strona nie wywaliła się dla zwykłego ruchu.
Trzy warstwy w jednym pliku silnie sugerują, że serwer przechodził przez kolejne grupy atakujących, a każda dopisywała swój kawałek.
Rodzina 2: dropper z losowymi hashami
Druga rodzina to remote loader, który co jakiś czas tworzył nowy folder z losowym hashem i wrzucał do niego PHP, który przez curl pobierał z serwera C&C odpowiedź tekstową i wykonywał ją przez eval. Trzy generacje droppera żyły w serwerze równolegle, w różnym wieku. Najstarsza z grudnia 2022 roku.
▸Techniczny deep-dive: trzy generacje, jeden launcher
/f1dec/z grudnia 2022 (najstarszy, prawdopodobnie moment pierwszego włamania)/wp-content/ad1b029e/z sierpnia 2026/wp-content/x9f8ea6/z września 2026 (regeneracja w trakcie naszej sesji diagnostycznej, złapana na żywo)
W każdej instancji identyczny launcher o tym samym hashu SHA. Zerowy license.txt w roocie był ich „kanarkiem”: prosty znacznik, po którym atakujący wiedział, że persistence jeszcze żyje.
Rodzina 3: magic-URL admin creator z auto-heal
To była najgroźniejsza rodzina, bo potrafiła sama się odbudowywać. Jedno żądanie HTTP z odpowiednim parametrem w URL powodowało, że serwer sam tworzył konto administratora WordPressa i od razu logował atakującego. Drugi plik, w ukrytej lokalizacji, odbudowywał całość jeśli ktoś usunął pierwszy.
▸Techniczny deep-dive: dwa pliki, trzy lokalizacje, zero szans ręcznego cleanupu
firewall.php: reagował na konkretny parametr GET w URL. Jedno trafienie powodowało, że serwer tworzył konto administratora (login i email zaszyte w kodzie) i od razu logował atakującego z pominięciem formularza.fixer.php: HTTP-open regenerator. Jeśli ktoś usunąłfirewall.php, wystarczyło jedno żądanie HTTP dofixer.php, żeby on zdekodował z base64 zapasowe kopie i położył je z powrotem na dysku, w trzech lokalizacjach jednocześnie: w roocie, wmu-plugins, w folderze motywu.
Oznaczało to, że ręczne usunięcie plików po stronie klienta nie dawało nic. Dopóki na serwerze żył fixer.php, pozostałe pliki wracały.
Dodatek: phishing kit /quiz/
Niezależnie od backdoorów, w podfolderze /quiz/ działał quiz oparty o SaaS Marquiz. Konfiguracja quizu: polski scam lead gen dla fotowoltaiki. Leady z formularza były wysyłane w dwóch kanałach: na firmową skrzynkę klienta (atakujący podszył się pod jego adres jako nadawcę) i na ukraiński bot Telegrama (identyfikator chatu + token bota zaszyte w kodzie).
Timeline ataku (zrekonstruowany)
| Data | Zdarzenie |
|---|---|
| 2022-12-10 | Pierwszy loader (/f1dec/index.php). Prawdopodobnie moment pierwotnej kompromitacji przez stary CVE. |
| 2025-08-12 | Deploy phishing kitu /quiz/ + Telegram bot. |
| 2026-08-22 | Druga generacja droppera (/wp-content/ad1b029e/). |
| 2026-08-30 14:16 | Batch drop: ukryty folder z nazwą zawierającą cudzysłów (anti-lstat trick) + wp2shell-batch-guard. |
| 2026-08-31 01:31 | Masywny deploy: firewall.php + fixer.php + wp2shell-batch-guard.php w trzech lokalizacjach. Tego samego dnia atakujący podmienił rdzeń WordPressa i nadpisał wp-config.php, prawdopodobnie żeby odzyskać kontrolę po jakimś automatycznym cleanupie. |
| 2026-09-03 11:33 | W trakcie naszej sesji: trzecia generacja droppera (/wp-content/x9f8ea6/) pojawia się na żywo. Łapiemy ją w locie. |
| 2026-09-03 11:52 | Pełne wyczyszczenie wszystkich trzech rodzin + phishing kitu. |
Trzy lata persistencji, w tym cała seria aktywnych operacji w ostatnim miesiącu. Klient nie wiedział o niczym.
Co zrobiliśmy
Krok 1: Przywrócenie dostępności
Pierwsze godziny poszły na to, żeby strona w ogóle działała, bez względu na to co znajdziemy pod spodem. Wyłączenie ruchu z zewnątrz, przywrócenie czystego punktu wejścia (index.php), usunięcie oczywistych 500-ek. Dopiero potem zaczęła się właściwa diagnoza.
Krok 2: Enumeracja wszystkich dropperów
Pełne skanowanie webroota po charakterystycznych markerach (goto + base64, 2DUAN, eval(curl(...)), nietypowe cudzysłowy w nazwach folderów jako anti-lstat trick). Każdy znaleziony plik: backup off-site + usunięcie.
Krok 3: Rozcięcie łańcucha regeneracji
Rodzina 3 regenerowała się przez fixer.php. Dopóki fixer.php żył, pozostałe pliki wracały. Musieliśmy ustalić, że fixer.php istnieje w trzech lokalizacjach jednocześnie i usunąć wszystkie trzy w jednym przelocie. Po pierwszym podejściu, w którym usunęliśmy tylko kopię w motywie, pliki wróciły w ciągu kilku minut.
Krok 4: Phishing kit + Telegram
Usunięcie całego katalogu /quiz/ oraz powiązanego konta Marquiz (klient dostał od nas listę kroków do przeprowadzenia u siebie). Zablokowanie wysyłki z własnej domeny jako nadawcy (SPF + DMARC reject).
Krok 5: Watcher mu-plugin (zostaje na stałe)
Zbudowaliśmy dedykowany mu-plugin, nazwijmy go „forensic watcher”, który żyje w wp-content/mu-plugins/ i uruchamia się przy każdym żądaniu PHP. Jest częścią pakietu, który dołączamy do każdej umowy w ramach utrzymania i rozwoju stron.
▸Co dokładnie robi watcher (lista funkcji)
- Loguje wszystko, co się zmienia w
.phpna serwerze: nowy plik, modyfikacja, usunięcie. Osobny log z pełną ścieżką + timestamp. - Loguje każdą próbę ataku: żądanie ze znanymi sygnaturami trzech rodzin backdoorów. Osobny log, osobny plik.
- Blokuje 403: zanim atakujący dostanie odpowiedź, serwer zwraca 403 Forbidden na znane sygnatury. Czyli nawet jeśli w przyszłości jakimś cudem na serwerze pojawi się
firewall.php, magic URL i tak nie zadziała. - Endpointy diagnostyczne chronione tokenem: status, baseline, lista zmian, lista użytkowników, lista cronów, grep po treści plików, autoremediation. Jedno żądanie HTTP i wiemy, czy w ciągu ostatniej doby coś na serwerze się zmieniło.
- Logi poza webrootem: pliki logów trafiają do katalogu wyżej niż publicznie dostępny webroot, dodatkowo z
.htaccess deny. Nawet gdyby atakujący znowu dostał dostęp FTP, nie zobaczy co dokładnie wiemy.
Krok 6: Audit bazy danych
Dodatkowo sprawdziliśmy przez watchera, że w bazie nie ma śmieci po atakujących: wp_users (jedyny admin to konto klienta, zero kont stworzonych przez atakujących), wp_options.autoload (czysty), WP-Cron (czysty, zero zarejestrowanych hooków, których nie da się przypisać do standardowych wtyczek).
Dlaczego to w ogóle się stało
Trzy niezależne wektory są rzadkie, ale konkretne powody wejścia atakujących to w 95% przypadków jedna z trzech rzeczy:
- Nieaktualne wtyczki z publicznym CVE. Serwer miał kilka wtyczek z rodziny Jet w wersji sprzed kilkunastu miesięcy. Jedna z nich w okresie 2022-2023 miała publicznie opisaną lukę pozwalającą na authenticated file upload.
- Słabe hasło administratora albo wyciek z zewnętrznego serwisu (data breach). Pierwotna kompromitacja mogła nie być „techniczna”: wystarczy, że ktoś używał tego samego hasła w kilku miejscach, a jedno z nich wyciekło.
- Współdzielony hosting. Niektóre udokumentowane ataki na hosting współdzielony polegały na przejściu z jednej skompromitowanej strony sąsiada na drugą przez wspólny
tmplub prawa katalogu domyślnego.
Rezultaty w liczbach
Trzy lata ciszy, dziesięć dni erupcji, jedna minuta cleanupu
Skumulowana liczba złośliwych artefaktów na serwerze w czasie. Każdy punkt to osobny deploy atakującego. Zielony punkt na końcu to nasza interwencja.
Co znaleźliśmy
Podział szkodliwych artefaktów
- Japanese cloak + 2DUAN
- Dropper (3 generacje)
- magic-URL admin
- Phishing kit /quiz/
Czas: atak vs reakcja
Porównanie skal
Paski proporcjonalne. Watcher kompresuje czas detekcji o ok. tysiąc razy względem stanu pierwotnego.
Czego nauczył nas ten case
1. Backdoory potrafią współistnieć
Przyzwyczajenie „jeden atak = jeden rodzaj szkodnika” jest mylące. Jeśli strona była wystawiona i podatna przez lata, mogła być skompromitowana kilka razy, przez różne grupy, z różnymi celami. Każda z nich zostawia własny mechanizm persistencji i każdy z nich trzeba znaleźć osobno. Zatrzymanie się po usunięciu pierwszego pliku to typowy błąd.
2. Auto-heal to główny mechanizm przeżycia nowoczesnego malware
Pliki w widocznych miejscach to przynęta. Prawdziwym mechanizmem przeżycia jest regenerator w nieoczywistej lokalizacji, który odbudowuje widoczne pliki za każdym razem, gdy ktoś je usunie. Jeśli po „wyczyszczeniu” strony pliki wracają w ciągu kilku godzin, znaczy to, że czyszczono tylko objawy.
3. Twoja domena może być narzędziem, nawet jeśli Twoja strona wygląda OK
Phishing kit z Telegram botem nie zrobił nic widocznego z perspektywy odwiedzającego stronę. Nie pokazywał reklam, nie przekierowywał, nie zmieniał SEO. Po prostu wykorzystywał domenę jako nadawcę. Dla Google, Microsoftu, Barracudy i reszty operatorów antyspamowych wygląda to tak, jakby to Ty wysyłałeś phishing. Konsekwencje (SPAMhaus blacklist, utrata deliverability) są poważniejsze niż defacement.
4. Monitoring plików to nie luksus
Większość klientów rozpoznaje atak, dopiero gdy coś wizualnie się zepsuje: strona nie ładuje się, pojawia się ostrzeżenie Chrome „deceptive site”, Google wywala z indeksu. W tym momencie szkodliwa aktywność na serwerze trwa często miesiącami. Prosty watcher, który loguje zmiany .php, daje czas reakcji liczony w godzinach, nie w miesiącach. To standardowy element każdej naszej umowy utrzymaniowej.
5. Backupy sprzed daty X zawierają backdoory
Standardowy odruch po wykryciu kompromitacji („przywrócę backup sprzed tygodnia”) w tym case’ie nie zadziałałby. Backup sprzed tygodnia zawierał kompletny zestaw backdoorów. Backup sprzed roku też. Jedyna droga to pełen cleanup forensyczny + świeże backupy od zera.
Backdoor w WordPressie: jak go rozpoznać i usunąć tak, żeby nie wrócił
Ten poradnik jest dla właścicieli firmowych stron na WordPressie, którzy podejrzewają włamanie albo już raz „czyścili” serwis, a dziwne pliki wróciły. Odpowiadamy na pytanie, jak usunąć backdoor z WordPressa w sposób, który zamyka sprawę, a nie tylko objawy.
Czym jest backdoor WordPress i dlaczego tak długo pozostaje niewidoczny
Backdoor WordPress to fragment kodu PHP, który daje atakującemu stały dostęp do serwera niezależnie od haseł w panelu. Może tworzyć konta administratorów, pobierać i wykonywać kod z zewnętrznego serwera albo podmieniać treść dla wybranych odwiedzających.
Kluczowa cecha: dobrze napisany backdoor nie psuje strony. Zwykły użytkownik widzi normalny serwis, bo złośliwy kod na końcu i tak uruchamia WordPressa. W opisanym wyżej wdrożeniu główny plik index.php zawierał trzy warstwy obcego kodu, a strona przez ponad trzy lata wyglądała z zewnątrz na zdrową.
Właściciel zwykle dowiaduje się o problemie dopiero wtedy, gdy przeglądarka pokazuje ostrzeżenie o niebezpiecznej witrynie, Google zaczyna usuwać podstrony z indeksu albo serwis przestaje odpowiadać.
Zhakowana strona WordPress: sygnały, których nie warto ignorować
Pojedynczy objaw łatwo zbagatelizować. Razem tworzą wzorzec długotrwałej kompromitacji. Warto zareagować, jeśli widzisz choćby kilka z poniższych:
- nowe pliki index.php w losowych podfolderach wtyczek lub katalogi o nazwach przypominających hash (np. ciąg liter i cyfr w wp-content),
- pliki o zerowym rozmiarze, którym regularnie zmienia się data modyfikacji, bez zmiany treści,
- w Google Search Console strony w obcym języku, których nikt nie publikował,
- podkatalogi z treścią niezwiązaną z firmą, np. formularze, quizy, landing pages,
- konta administratorów, których nikt nie zakładał, albo nieznane zadania w WP-Cron,
- informacje od klientów o mailach wysłanych „z Waszej domeny”, których nie wysyłaliście.
W opisanym przypadku wszystkie te sygnały były widoczne na długo przed awarią. Pusty plik license.txt w katalogu głównym służył atakującym jako znacznik, że ich dostęp nadal działa.
Jak usunąć backdoor z WordPressa: kolejność działań
Najczęstszy błąd to usuwanie podejrzanych plików jeden po drugim, w miarę ich znajdowania. Skuteczny proces wygląda inaczej:
- Przywrócenie dostępności. Czysty punkt wejścia (index.php), ograniczenie ruchu, usunięcie błędów 500. Diagnoza toczy się równolegle, ale strona ma najpierw działać.
- Kopia materiału dowodowego. Każdy znaleziony plik trafia do kopii poza serwerem, zanim zostanie usunięty. Bez tego nie odtworzysz, co się stało i od kiedy.
- Pełna enumeracja. Skanowanie całego webroota po charakterystycznych wzorcach, a nie przeglądanie folderów „na oko”.
- Rozcięcie łańcucha regeneracji. Najpierw znajdujesz wszystkie kopie mechanizmu, który odtwarza pozostałe pliki, i usuwasz je w jednym przebiegu.
- Sprzątanie poza plikami. Baza danych, poczta, DNS, konta zewnętrznych usług.
- Stały monitoring. Mechanizm, który powie, jeśli cokolwiek wróci.
Skanowanie plików PHP: czego szukać w webroocie
Wtyczki bezpieczeństwa wyłapują znane sygnatury, ale backdoory są często zaciemniane. Warto przeszukać pliki .php pod kątem kilku wzorców: konstrukcji eval z treścią pobraną przez curl, długich ciągów base64 połączonych z goto, tekstu zakodowanego ROT13, nietypowych znaków (np. cudzysłowów) w nazwach katalogów, które utrudniają ich listowanie.
Drugi kierunek to porównanie rdzenia WordPressa z oficjalną wersją. W opisanym wdrożeniu atakujący podmienił pliki rdzenia i nadpisał wp-config.php. Takie zmiany widać tylko przy porównaniu z czystą kopią, nie przy przeglądaniu panelu.
Trzeci kierunek to katalog mu-plugins i folder motywu. Pliki w mu-plugins ładują się zawsze i nie pojawiają się na zwykłej liście wtyczek, więc są wygodnym miejscem dla atakującego.
Malware z funkcją auto-heal: dlaczego pliki wracają po usunięciu
Jeśli po „wyczyszczeniu” strony pliki wracają po kilku godzinach, usuwano objawy, a nie przyczynę. Współczesne backdoory mają regenerator: osobny plik w mało oczywistym miejscu, który na jedno żądanie HTTP odtwarza z zapasowej kopii (np. zakodowanej w base64) wszystko, co usunięto.
W opisanym przypadku regenerator leżał jednocześnie w trzech lokalizacjach: w katalogu głównym, w mu-plugins i w folderze motywu. Po pierwszym podejściu, w którym usunięto tylko kopię w motywie, pliki wróciły w ciągu kilku minut. Dopiero usunięcie wszystkich trzech naraz zamknęło pętlę.
Druga pułapka to współistnienie kilku rodzin szkodników. Strona podatna przez lata bywa przejmowana kilka razy, przez różne grupy. Tu były trzy niezależne rodziny backdoorów i osobny phishing kit. Zatrzymanie się po znalezieniu pierwszej rodziny oznaczałoby, że pozostałe dalej działają.
Baza danych, poczta i backupy po włamaniu
Pliki to nie wszystko. Po cleanupie trzeba sprawdzić tabelę wp_users (czy nie ma obcych administratorów), opcje ładowane automatycznie w wp_options i zarejestrowane zadania WP-Cron. W opisanym wdrożeniu baza okazała się czysta, ale bez tej weryfikacji nie dałoby się tego stwierdzić.
Osobny temat to poczta. Phishing kit ukryty w podkatalogu wysyłał maile z adresem domeny klienta jako nadawcą. Dla operatorów antyspamowych wygląda to tak, jakby phishing wysyłała sama firma, a skutkiem może być trafienie domeny na czarne listy. Ochroną jest poprawne SPF i polityka DMARC ustawiona na reject.
Ostatnia rzecz to backupy. Odruch „przywrócę kopię sprzed tygodnia” nie działa, jeśli włamanie ma kilka lat. Kopia sprzed tygodnia i sprzed roku zawierały tu komplet backdoorów. Po pełnym cleanupie trzeba zacząć serię backupów od zera.
Monitoring zmian plików WordPress zamiast kolejnego sprzątania
Przyczyną włamania najczęściej są nieaktualne wtyczki z opublikowaną luką, słabe lub powtarzane hasła administratora albo sąsiedztwo na hostingu współdzielonym. Aktualizacje i hasła to podstawa, ale nie dają informacji, że coś już się wydarzyło.
Dlatego po cleanupie klient dostał mu-plugin, który loguje każdą zmianę w plikach .php, blokuje kodem 403 żądania ze znanymi sygnaturami tych rodzin backdoorów i trzyma logi poza publicznym katalogiem. Wykrycie wracającego droppera zajmuje minuty, a nie lata. Od wdrożenia tego mechanizmu nie było nawrotu.
Jeśli masz firmową stronę na WordPressie i nikt nie pilnuje serwera od środka, dobrym pierwszym krokiem jest przegląd wszystkich plików .php w webroocie i listy kont administracyjnych. Taki przegląd pokazuje, czy na serwerze działa jakikolwiek backdoor WordPress, zanim strona przestanie odpowiadać.
Stały monitoring, aktualizacje i reakcję na incydenty prowadzimy w ramach utrzymania i rozwoju stron; stan swojego serwisu możesz sprawdzić zamawiając audyt strony, a przy podejrzeniu aktywnego włamania najszybciej będzie przez kontakt bezpośredni.
Dla kogo ten case jest ważny
- Właściciele firmowych stron na WordPressie, którzy „mają hosting od agencji” i nie wiedzą, kto odpowiada za jego security
- Firmy, które przestały aktualizować wtyczki, bo „działa, nie ruszać”
- Każdy, kto widział w swoim serwisie dziwne pliki
index.phpw nieoczekiwanych lokalizacjach i usunął je ręcznie, zakładając że to koniec sprawy
Jeśli brzmi to znajomo, dobry pierwszy krok to audyt wszystkich plików .php w webroocie serwera + lista kont administracyjnych w WordPressie. Taki audyt zajmuje nam zwykle kilka godzin, a sam pokazuje, czy problem w ogóle istnieje. Jeszcze więcej case’ów znajdziesz w zasobach, pełna oferta jest w naszej ofercie.
Nie chcesz dowiedzieć się że masz backdoora
…wtedy, kiedy strona już leży
Ten case opisuje stronę, którą dostaliśmy w awarii. Prawie wszystkiego dałoby się uniknąć, gdyby ktoś pilnował serwera od środka: monitorował zmiany plików, aktualizował wtyczki, trzymał backupy, obserwował próby ataków. To właśnie jest nasza usługa.
Zobacz ofertę: utrzymanie i rozwój stron →
lub napisz bezpośrednio do nas, zrobimy audyt bez zobowiązań.
Sprawdź, zanim porozmawiamy
Usługi powiązane z tym wdrożeniem. Zajrzyj do oferty, zobacz jak podchodzimy do podobnych problemów u innych klientów.
Podobał Ci się ten artykuł?
Jeśli po lekturze czujesz, że w Twojej firmie też są procesy warte przebudowy, umów bezpłatną rozmowę. Sprawdzimy razem, gdzie realnie wycieka sprzedaż i co ma sens wdrożyć w pierwszej kolejności.
Umów rozmowę