# Hľadanie cudzích účtov administrátora v CMS a na serveri

> Hľadanie cudzích účtov administrátora: ako skontrolovať CMS, hostingový panel, server s Linuxom a databázu na neznáme prístupy a správne naložiť s nálezmi.

Zdroj: https://phpsos.de/sk/blog/fremde-admin-konten-finden/  
Stav: 25.10.2026  
Poskytovateľ: PHP SOS, Núdzová pomoc pri PHP a bezpečnosť serverov. Okamžitá pomoc cez WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20de%C5%88%2C%20PHP%20SOS%2C%20potrebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20serverom%20s%20PHP.%20Spolo%C4%8Dnos%C5%A5%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**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ý?](https://phpsos.de/sk/php2shell/bin-ich-gehackt-anzeichen/).

## 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](https://phpsos.de/sk/blog/ssh-schluessel-pruefen/).

## 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:

```bash
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:

```sql
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ú:

```bash
# Úč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:

```sql
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](https://phpsos.de/sk/ratgeber/zwei-faktor-admin/). 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](https://phpsos.de/sk/ratgeber/backdoor-wordpress-finden/).

## 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](https://phpsos.de/sk/leistungen/incident-response/) 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

- [WordPress](https://wordpress.org/)
- [php.net: bezpečnostné hlásenia](https://www.php.net/)
- [BSI: pokyny k bezpečnostným incidentom IT](https://www.bsi.bund.de/)
