Aktuálna situácia: PHP2Shell. Dve kritické zraniteľnosti PHP (CVSS 9.2) umožňujú spustenie škodlivého kódu bez prihlásenia. Záplaty od 21. 10. 2026.Čo treba urobiť teraz →

Hľadanie cudzích účtov administrátora v CMS a na serveri

Neznámy administrátor je často najjednoduchšie zadné vrátko. Ako hľadať cudzie účty úroveň po úrovni, aj tie, ktoré rozhranie skrýva.

Stav 5 min čítaniaDetekcia a forenzná analýza

Stručne: Cudzie účty administrátora nájdete, len ak skontrolujete všetky úrovne: CMS alebo obchod, hostingový panel, systémových používateľov servera, prístupy SSH a používateľov databázy. Nespoliehajte sa na zoznam používateľov v backende, pretože votrelecký kód tam môže účty skryť. Nálezy najprv zdokumentujte a zablokujte, potom objasnite príčinu a až potom ich zmažte.

Prečo je neznámy administrátor taký nebezpečný

Ďalší účet administrátora je pre útočníkov najpohodlnejšie zadné vrátko. Nepotrebuje škodlivý kód, pri skenoch súborov nevyniká a prežije každú aktualizáciu. Kto sa neskôr prihlási týmto účtom, vyzerá v protokole ako bežný redaktor.

Po PHP2Shell nadobúda táto kontrola na význame. Zraniteľnosti CVE-2026-109618 a CVE-2026-109619 umožňujú vykonať škodlivý kód bez prihlásenia. Kto môže na serveri vykonávať kód, môže aj zapisovať do databázy a tak vytvárať účty. Aktualizácia PHP zraniteľnosť uzavrie, no neodstráni účet, ktorý vznikol predtým.

Pre PHP2Shell neexistujú zverejnené, potvrdené indikátory kompromitácie (Indicators of Compromise), teda žiadny zoznam typických stôp. Neznámy účet preto nie je dôkazom PHP2Shell, ale jasným náznakom neoprávneného prístupu, bez ohľadu na cestu. Prehľad ďalších príznakov je v časti Som už kompromitovaný?.

Kde sa môžu cudzie účty administrátora ukrývať

Mnohí prevádzkovatelia sa pozrú len do CMS. Útočníci myslia v úrovniach a každá úroveň má vlastné účty:

Úroveň Kde sa pozrieť Na čo dbať
CMS alebo obchod správa používateľov a tabuľka používateľov v databáze rola administrátor, dátum vytvorenia, cudzia e-mailová adresa
Hostingový panel používatelia, doplnkové účty, účty FTP účty, ktoré nikto v tíme nevytvoril
Server s Linuxom /etc/passwd, skupiny sudo alebo wheel, sudoers ďalšie účty s UID 0, nové prihlasovacie shelly
SSH authorized_keys všetkých používateľov kľúče bez známeho vlastníka
Databáza tabuľka používateľov databázového servera používatelia s globálnymi právami alebo hostom %
Externé služby doména, DNS, Search Console, CDN dodatoční vlastníci alebo oprávnené osoby

Úroveň SSH je samostatná natoľko, že si zaslúži osobitný článok: Hľadanie a odstránenie neznámych kľúčov SSH.

Cudzie účty administrátora v CMS nájsť, aj skryté

Zoznam používateľov v backende vytvára samotná aplikácia. Ak beží votrelecký kód, môže jednotlivé záznamy vyfiltrovať. Spoľahlivejšie sú preto nástroje, ktoré sa pozerajú priamo na uložené dáta. Pre WordPress vypíše WP-CLI všetkých administrátorov s dátumom vytvorenia:

wp user list --role=administrator --fields=ID,user_login,user_email,user_registered

Ešte o úroveň hlbšie ide čítací dopyt do databázy. Ukáže každý účet, ktorému je priradená rola administrátora, bez ohľadu na to, čo zobrazuje rozhranie. Predponu tabuľky wp_ prispôsobte svojej inštalácii:

SELECT u.ID, u.user_login, u.user_email, u.user_registered
FROM wp_users u
JOIN wp_usermeta m ON m.user_id = u.ID
WHERE m.meta_key = 'wp_capabilities'
  AND m.meta_value LIKE '%administrator%'
ORDER BY u.user_registered DESC;

Porovnajte výsledky backendu, WP-CLI a databázy. Ak sa účet objaví len v databáze, je to silný varovný signál, pretože je v hre navyše kód, ktorý ho skrýva. Pre iné systémy, ako Shopware, TYPO3 alebo Joomla, platí rovnaký princíp: priamo sa dopytovať na tabuľku používateľov a porovnať so zobrazením v backende. Ktoré tabuľky to sú, je v dokumentácii výrobcu.

Skontrolovať systémových používateľov a používateľov databázy

Na samotnom serveri zaujímajú predovšetkým účty s právami root a účty, ktoré sa môžu prihlásiť. Nasledujúce príkazy len čítajú:

# Účty s UID 0 (normálne len root)
awk -F: '$3 == 0 {print $1}' /etc/passwd

# Účty so skutočným prihlasovacím shellom
grep -vE '(nologin|false)$' /etc/passwd

# Členovia administrátorských skupín
getent group sudo wheel

# Dodatočné pravidlá sudo
sudo ls -la /etc/sudoers.d/
sudo grep -rvE '^\s*(#|$)' /etc/sudoers /etc/sudoers.d/

# Posledné prihlásenia s úplným dátumom
last -F | head -30

Na databázovom serveri skontrolujete, ktorí používatelia existujú a aké majú práva:

SELECT user, host FROM mysql.user ORDER BY user;
SHOW GRANTS FOR 'anwendung'@'localhost';

Aplikácia potrebuje spravidla používateľa s právami na práve jednu databázu. Ďalší používateľ s globálnymi právami, ktorý smie pristupovať z ľubovoľných hostov (%), si žiada objasnenie.

Nezabudnite na účty mimo servera. Kto má prístup k zmluve o doméne alebo ku správe DNS, môže presmerovať návštevníkov alebo dať vystaviť certifikáty na cudzie servery. Ďalší vlastník v Google Search Console môže odosielať mapy webu a meniť nastavenia. Preto u registrátora, poskytovateľa DNS, CDN a Search Console prejdite zoznam oprávnených osôb a porovnajte ho s tým, čo pozná váš tím.

Ako s nálezom správne naložiť

Prvým impulzom je cudzí účet okamžite zmazať. Tým však zmizne aj dôležitá stopa: dátum vytvorenia často vymedzí, kedy bol útočník v systéme. Lepšie je toto poradie:

  1. Zdokumentovať: Používateľské meno, ID, e-mail, dátum vytvorenia, rolu a poslednú aktivitu s časom zaznamenať, najlepšie ako snímku obrazovky a export.
  2. Zablokovať namiesto zmazať: Odobrať rolu, nahradiť heslo náhodnou hodnotou alebo účet deaktivovať.
  3. Vymedziť obdobie: Skontrolovať logy okolo dátumu vytvorenia. Aké požiadavky boli krátko predtým, ktoré súbory sa zmenili?
  4. Skontrolovať ďalšie úrovne: Kto vytvorí účet, zanecháva zriedka len jeden. Prezrieť aj súbory, cronjoby, kľúče SSH a databázu.
  5. Vyčistiť a obnoviť prístupy: Až po vyčistení a aktualizácii PHP obnoviť všetky heslá, kľúče a relácie.

Poznámka k opatrnosti: nie každý neznámy účet je zlomyseľný. Agentúry, bývalí dodávatelia alebo pluginy údržby si niekedy vytvárajú vlastné účty. Objasnite to skôr, než spustíte poplach, ale objasnite to včas.

Zabrániť návratu

Po vyčistení by mali byť účty administrátorov výnimkou, nie pravidlom. Osvedčili sa osobné účty namiesto zdieľaných prístupov, čo najmenej administrátorov a dvojfaktorové prihlásenie pre administrátorské prístupy. Určte navyše, kto smie vytvárať nové účty administrátorov a kde sa to dokumentuje.

Pravidelný dopyt, ako sú vyššie uvedené, napríklad týždenne a s porovnaním s predošlým týždňom, rýchlo zviditeľní nové účty. Pri WordPresse pomáha navyše sprievodca Hľadanie zadných vrátok vo WordPresse.

Ako konkrétne pomáha PHP SOS?

  • Skontrolujeme všetky úrovne účtov od CMS cez server až po databázu a porovnáme zobrazenie v backende s uloženými dátami.
  • Nálezy zabezpečíme s časovými pečiatkami skôr, než sa účty zablokujú alebo odstránia.
  • V rámci reakcie na incidenty objasníme, ako účet vznikol a či existujú ďalšie zadné vrátka.
  • Prístupy obnovíme v správnom poradí a nastavíme priebežnú kontrolu nových účtov administrátorov.

Časté otázky

Mám neznámy účet administrátora zmazať hneď?

Radšej nie hneď. Najprv zdokumentujte používateľské meno, dátum vytvorenia, e-mailovú adresu a poslednú aktivitu a účet zablokujte. Zmazať sa smie až po zabezpečení stôp, pretože dátum vytvorenia je často dôležitým náznakom času vlámania.

Môže byť účet administrátora v backende neviditeľný?

Áno. Votrelecký kód môže jednotlivé účty zo zoznamu používateľov v rozhraní skryť. Priamy dopyt do databázy alebo nástroj príkazového riadka naopak ukáže všetky uložené účty. Preto sa nepozerajte len do backendu.

Ktoré úrovne musím okrem CMS skontrolovať?

Hostingový panel, prístupy FTP a SFTP, systémových používateľov servera vrátane práv sudo, kľúče SSH, používateľov databázy a účty u domény, DNS a Search Console. Útočník potrebuje na návrat len jedny z týchto dverí.

Stačí po náleze zmeniť všetky heslá?

Nie. Cudzí účet ukazuje, že niekto mal prístup. Potom treba objasniť aj vstupnú bránu, ďalšie zadné vrátka a možné úniky dát. Heslá meňte až po vyčistení a z čistého zariadenia.

Zdroje

Okamžitý kontakt

Každá hodina sa počíta. Napíšte nám hneď.

Stručne opíšte systém, verziu PHP a svoje pozorovanie. Ozveme sa, vyjasníme situáciu a budeme pracovať na diaľku, kým nebude incident uzavretý a zdokumentovaný.

Okamžitá pomoc