Piilotettu käyttäjätili tarkoittaa tiliä, joka on luotu tai muokattu siten, että se ei näy tavallisessa WordPressin Käyttäjät-listassa, author-arkistoissa tai yleisissä käyttäjähauissa. Hyökkääjä tai huolimattomuudesta tilin luonut sisäinen toimija voi piilottaa tilin päästäkseen takaisin järjestelmään myöhemmin. Piilotettu tili voi olla ylläpitäjäroolissa (administrator) ja antaa täydet oikeudet sivustoon — siksi sen löytäminen on kriittistä.
Ennen kuin aloitat: varmuuskopio ja turvallinen ympäristö
Ennen kuin teet mitään muutoksia tai suorituksia (erityisesti tietokantakyselyjä), ota täysi varmuuskopio (tiedostot + tietokanta). Jos et ole varma, testaa toimenpiteet kehitysympäristössä.
1. Tarkista WordPressin käyttäjälista ja suodattimet
Aloita perusasioista: WordPress-hallinnassa Käyttäjät -> Kaikki käyttäjät. Jos ylläpitäjätiliä puuttuu tai käyttäjälistassa on epäselvyyksiä, syytä jatkaa syvemmälle.
Muista: joku voi piilottaa käyttäjiä suodattimilla (esim. pre_user_query, user_has_cap) tai muokatuilla admin-vieweilla. Etsi teemasta tai lisäosista koodia, joka kutsuu remove_action('pre_get_users', ...) tai add_filter('pre_user_query', ...).
2. Hae suoraan tietokannasta (wp_users ja wp_usermeta)
Tietokantahaku paljastaa kaikki tilit, myös sellaiset joita admin-näkymä ei näytä.
Esimerkkikyselyt (aja vain hallitussa ympäristössä, korvaa tarvittaessa taulujen etuliite):
SQL:SELECT ID, user_login, user_email, user_registered, display_name FROM wp_users ORDER BY user_registered DESC;
Etsi epäilyttävää: tuntemattomat sähköpostiosoitteet, outo user_login (esim. pitkä hash), erittäin vanhat tai hyvin uudet tilit.
Tarkista käyttäjäroolit:SELECT um.user_id, um.meta_key, um.meta_value FROM wp_usermeta um WHERE um.meta_key LIKE '%capabilities' OR um.meta_key LIKE '%role%';
Tämä paljastaa, onko käyttäjällä admin-oikeuksia (a:1:{s:13:"administrator";b:1;}-tyyppinen arvo). Etsi yllätyksellisiä admin-käyttäjiä.
3. WP-CLI — nopea ja luotettava tapa listata käyttäjiä
Jos palvelimellasi on WP-CLI, se on erittäin hyödyllinen:
Peruslista:wp user list --fields=ID,user_login,user_email,roles,user_registered --format=table
Hae ylläpitäjät:wp user list --role=administrator --format=csv
Voit myös hakea käyttäjiä, joilla ei ole postauksia:wp user list --format=csv --fields=ID,user_login,user_email --role=author,editor,administrator
WP-CLI näyttää kaikki wp_users-taulun tilit, riippumatta admin-näkymän suodattimista.
4. Tarkista REST API -pääte (jos mahdollista)
WordPressin REST API voi paljastaa käyttäjiä (jos wp-json/wp/v2/users on sallittu):
curl -s 'https://esimerkki.fi/wp-json/wp/v2/users'
Huom: Monet sivustot rajoittavat tätä tai piilottavat käyttäjät. Jos API vastaa, se voi listata käyttäjät ja heidän nimensä — hyödyllinen näkyvyyden lähde.
5. Author ID -haun (enumeration) testaus
Vanha mutta toimiva tapa: käy osoitteessa https://esimerkki.fi/?author=1, ?author=2 jne. Jos sivusto uudelleenohjaa /author/username, saat selville mahdollisia käyttäjätunnuksia. Hyökkääjä voi kuitenkin estää tämän toiminnon, mutta se kannattaa testata.
6. Etsi käyttäjän aktiviteettia: postit, meta ja viimeiset kirjautumiset
Piilotettu tili voi jäädä elämään vaikka sillä ei olisi julkisia postauksia.
SQL-esimerkit:
Etsi kaikki postit, joiden post_author viittaa käyttäjään:SELECT ID, post_title, post_date, post_status FROM wp_posts WHERE post_author = <KÄYTTÄJÄ_ID> LIMIT 20;
Etsi epäilyttävät usermeta-kentät (esim. custom last_login, 2FA-metat):SELECT * FROM wp_usermeta WHERE user_id = <KÄYTTÄJÄ_ID>;
Monet auditointi- ja viimeksi-kirjautunut-lisäosat tallentavat meta-avaimia kuten last_login tai wp_last_login — ne kertovat, onko tiliä käytetty hiljattain.
7. Etsi ”hiljaisia” mutta korkean oikeuden tilejä
Joillain hyökkääjillä on tilejä, joilla ei ole julkista profiilia tai postauksia mutta jotka ovat admin-roolissa. Suorita SQL-haku:
SELECT u.ID, u.user_login, u.user_email, um.meta_value AS capabilities FROM wp_users u JOIN wp_usermeta um ON u.ID = um.user_id WHERE um.meta_key LIKE '%capabilities%' AND um.meta_value LIKE '%administrator%';
Tämä listaus paljastaa kaikki admin-roolin käyttäjät.
8. Tarkista teemojen ja lisäosien custom-koodi
Etsi teeman functions.php:stä tai custom-lisäosista koodia, joka muuttaa käyttäjäkyselyitä tai piilottaa käyttäjiä. Hakuehdot: pre_user_query, show_admin_bar, remove_action('views_users', ...), tai add_filter('editable_roles', ...).
9. Etsi takaportteja ja ”backdoor”-käyttäjiä tiedostojärjestelmästä
Hyökkääjä voi lisätä PHP-tiedoston, joka luo tai palauttaa käyttäjiä. Etsi epäilyttäviä tiedostoja wp-content/uploads, teemat ja lisäosien hakemistot. Etsi tiedostoja, joissa on funktioita kuten wp_create_user, wp_update_user, add_user_meta tai eval-pohjaista koodia.
10. Käytä auditointi- ja tietoturvalisäosia
Lisäosat, jotka auttavat löytämään piilotettuja tai luvattomia tilejä:
-
Wordfence (scan, login attempts)
-
Activity Log / WP Security Audit Log (käyttäjätoiminnot)
-
Sucuri (scanner ja audit)
Nämä tallentavat lokit ja voivat paljastaa uuden tilin luomisen, roolimuutokset tai epäilyttävät toiminnot.
11. Etsi käyttäjiä, joilla on epäilyttävät sähköpostiosoitteet tai display_name
Joissain hyökkäyksissä luodaan fake-tili, jonka sähköposti on esim. admin1234@mailinator.com. Suodata wp_users-taulusta kaikki sähköpostiosoitteet jotka näyttävät massaluoduilta tai tuntemattomilta.
12. Mitä tehdä, kun löydät epäilyttävän tilin
-
Ota tilistä välittömästi varmuuskopio ja eristä sivusto (maintenance mode) tarvittaessa.
-
Vie tili väliaikaisesti roolista alemmaksi tai poista sen oikeudet:
wp user set-role <user> subscriber. -
Muuta hallinnoivien tilien salasanat ja vaihda kaikki API-avaimet/salasanat.
-
Poista tai muuta käyttäjä vasta kun olet dokumentoinut sen (lokit, ID, user_email) tutkimusta varten.
-
Skannaa tiedostot ja tietokanta haittakoodin varalta ja tarkista teeman/lisäosien muutokset.
-
Kuhista jälkitoimet: poista backdoor-tiedostot, palauta varmuuskopio tarvittaessa, asenna 2FA ja rajoita admin-kirjautumisia IP:llä tai palomuurilla.
13. Ennaltaehkäisy ja koventaminen
-
Ota käyttöön 2FA kaikille ylläpitäjille.
-
Rajoita admin-kirjautumiset IP-osoitteilla tai HTTP-auth:lla.
-
Poista tai poista käytöstä tarpeettomat lisäosat ja tee säännölliset päivitykset.
-
Ota käyttöön audit-lokit ja varmistu, että lokit tallennetaan ja säilytetään turvassa.
-
Poista REST API -käyttäjälistaus, jos sitä ei tarvita.
Yhteenveto
Piilotetut käyttäjätilit ovat vakava uhka WordPress-sivustolle, mutta järjestelmällisellä tarkastelulla — tietokantahauilla, WP-CLI:llä, audit-lokeilla ja tiedostotarkastuksella — ne voidaan löytää ja poistaa. Tärkeintä on ennaltaehkäisy: 2FA, rajoitettu admin-käyttö, säännölliset skannaukset ja toimintalokit estävät tilien väärinkäytön. Toimi nopeasti, dokumentoi löydökset ja vahvista järjestelmäsi, jotta piilotetut tilit eivät pääse karkaamaan käsistä.
