Domanda Risolto Tentativo di login anomalo con nick amministratore

Stato
Discussione chiusa ad ulteriori risposte.

Riky.exe

Utente Emerald
24 Novembre 2009
867
82
218
575
Buongiorno,

Mi scuso per il titolo un po' confusionario ma non sapevo proprio cosa mettere.

Vi scrivo perché ho una domanda da farvi:

Premessa, come CMS uso Wordpress.

Da poco ho notato dei tentativi di Login sospetti sul mio sito Web. Tutto normale poiché tentavano di entrare l'username "admin" (non presente nel mio sito).
Non mi preoccupavo più di tanto poiché avendo autorizzato la pagina di log-in tramite .htacces solo a determinati indirizzi IP, anche se dovessero riuscire a loggare, non potrebbero fare niente.
Dopo un po' però, andando a controllare nei file di log ho notato dei tentativi di accesso con il mio nome utente, e non riesco a capire come siano riusciti a risalirci.
Premetto che non ho nessun articolo/progetto, l'unico posto in cui riesco a vedere il mio nome utente nel back-end è come "Autore della pagina".

Dunque la mia domanda è: Una persona esterna al sito può riuscire a risalire all'autore di una determinata pagina? Se sì come?

Vi ringrazio in anticipo.
 
  • Mi piace
Reazioni: RedWheelbarrow
Ultima modifica:
Buongiorno, utilizzando uno di questi due URLs è possibile risalire al username del autore su Wordpress: ilTuoHost/?author=1 o ilTuoHost/wp-json/wp/v2/users/1.
Il primo ti reindirizzerà a ilTuoHost/nomeDelAutore (rivelando l username del autore), mentre il secondo ritornerà alcune informazioni riguardo al autore in formato JSON (tra cui l username). Questi due metodi si possono utilizzare anche per enumerare altri utenti semplicemente cambiando id.

Per disabilitare il primo URL aggiungi questo in .htaccess:
Codice:
RewriteCond %{REQUEST_URI} !^/wp-admin [NC]
RewriteCond %{QUERY_STRING} ^author=\d+ [NC,OR]
RewriteCond %{QUERY_STRING} ^author=\{num
RewriteRule ^ - [L,R=403]

Per disabilitare il secondo URL, disattiva gli endpoint con questo snippet:
PHP:
function disable_rest_endpoints ( $endpoints ) {
    if ( isset( $endpoints['/wp/v2/users'] ) ) {
        unset( $endpoints['/wp/v2/users'] );
    }
    if ( isset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] ) ) {
        unset( $endpoints['/wp/v2/users/(?P<id>[\d]+)'] );
    }
    return $endpoints;
}
add_filter( 'rest_endpoints', 'disable_rest_endpoints');

In tutti i casi è meglio utilizzare una password complessa ed abilitare l' autenticazione a due fattori.
 
  • Grazie
  • Mi piace
Reazioni: Riky.exe e 0xbro
Buonasera,

in primis, grazie per la risposta, sei stato molto esaustivo, non potevi spiegarti meglio!

Il primo ti reindirizzerà a ilTuoHost/nomeDelAutore

Parlando con @0xbro mi aveva suggerito anche lui questa cosa, ma andando a controllare su ogni pagina il link rimaneva invariato (Ovvero, rimaneva ?author=1, senza rivelare il creatore della pagina), forse perché è possibile utilizzarlo solo su articoli? Non saprei, però non restituiva niente.

mentre il secondo ritornerà alcune informazioni riguardo al autore in formato JSON (tra cui l username).

Questo invece, provandolo ad aggiungere al link, effettivamente restituiva tutte le informazioni riguardante la pagina, tra cui l'Autore, infatti pensavo fosse proprio questo il metodo utilizzato (che ho già provveduto a fixare con uno snippet molto simile al tuo).
Ragionandoci però, avendo Google Analytics connesso al mio sito, che mi fa vedere tutti i link visitati, quel link non era mai apparso finché non l'ho cercato io, ed essendoci poca affluenza son sicuro di non essermelo perso per strada.

Secondo te esistono altre strade? Ho provato anche ad utilizzare wpscan ma non mi ha restituito niente (L'avevo già utilizzato in passato, ma non mi definirei "Bravo" ad usarlo, quindi una persona più esperta di me potrebbe essere riuscito a tirare fuori qualcosa, anche se nei file di log non ho notato niente di troppo strano, quindi lo escluderei).
 
Di nulla, sono contento che la mia risposta sia stata esaustiva. Probabilmente ?author=1 non ti ha reindirizzato come avviene normalmente perché il suo funzionamento era già bloccato dal host o da qualche plugin della sicurezza. Sicuramente ci sono altri metodi meno evidenti per ottenere l username, ad esempio si potrebbe iniettare del codice malevolo nel sito, oppure attuare un attacco a forza bruta tentando ogni username possibile (dato che la pagina del login ritorna un messaggio specifico se l username non è valido). Dei plugin esterni potrebbero aggiungere delle vulnerabilità. Capire esattamente quale metodo sia stato utilizzato nel tuo caso è abbastanza complicato. Trovo che la sicurezza di Wordpress in questo caso sia un po' carente, calcolando la sua fama dovrebbe offrire un servizio sicuro senza richiedere ulteriori modifiche. Ad esempio non mi è chiaro il motivo per cui al posto di utilizzare un UUID o una stringa generata casualmente venga utilizzato un valore sequenziale negli endpoint.
 
  • Mi piace
Reazioni: Riky.exe
Ultima modifica:
Probabilmente ?author=1 non ti ha reindirizzato come avviene normalmente perché il suo funzionamento era già bloccato dal host o da qualche plugin della sicurezza.
Avevo inserito uno snippet che, in caso di pagina 404 rimandava alla home, magari è quello, anche se non ne sono sicuro al 100%.

Sicuramente ci sono altri metodi meno evidenti per ottenere l username, ad esempio si potrebbe iniettare del codice malevolo nel sito, oppure attuare un attacco a forza bruta tentando ogni username possibile (dato che la pagina del login ritorna un messaggio specifico se l username non è valido).
Fortuna vuole che ho un plugin che dopo 5 tentativi di accesso dallo stesso IP blocca l'accesso, e se viene inserito un username non esistente non da nessun errore, ricarica solamente la pagina, quindi credo di averli depistati un po', anche perché:

1631084790093.png


Che tu sappia non c'è un modo per non far loggare le persone con una VPN? Mi risolverebbe mooolti problemi questa cosa :lol:
 
Ultima modifica:
L' unico modo veramente affidabile per bloccare l uso di VPN è quello di utilizzare una blacklist di IP proxy note (ci sono varie liste online), in più puoi autorizzare l' accesso al tuo sito soltanto da specifiche aree geografiche. Invece fare dei test direttamente sul IP per capire se è di una VPN sarebbe inaffidabile e produrrebbe dei falsi positivi. Ci sono varie API a pagamento e non per bloccare VPN e connessione TOR (penso che questi servizi si basino proprio su blacklist private aggiornate periodicamente). Puoi utilizzare questo plugin per bloccare l' accesso alla pagina del login, puoi fare fino a 1000 richieste giornaliere gratuite con un API Key (comunque non garantisco dato che non l' ho mai utilizzato). Secondo me la tua autenticazione è già sicura cosi senza dover fare ulteriori innesti, attacchi a forza bruta / dizionario che cambiano ip ogni tot di richieste sono lenti, perciò con password lunghe e casuali sei a posto. Tieni presente che alcuni utilizzano VPN per motivi benevoli e che bloccheresti il servizio anche a loro.
 
  • Mi piace
Reazioni: Riky.exe
L' unico modo veramente affidabile per bloccare l uso di VPN è quello di utilizzare una blacklist di IP proxy note (ci sono varie liste online), in più puoi autorizzare l' accesso al tuo sito soltanto da specifiche aree geografiche. Invece fare dei test direttamente sul IP per capire se è di una VPN sarebbe inaffidabile e produrrebbe dei falsi positivi. Ci sono varie API a pagamento e non per bloccare VPN e connessione TOR (penso che questi servizi si basino proprio su blacklist private aggiornate periodicamente). Puoi utilizzare questo plugin per bloccare l' accesso alla pagina del login, puoi fare fino a 1000 richieste giornaliere gratuite con un API Key (comunque non garantisco dato che non l' ho mai utilizzato). Secondo me la tua autenticazione è già sicura cosi senza dover fare ulteriori innesti, attacchi a forza bruta / dizionario che cambiano ip ogni tot di richieste sono lenti, perciò con password lunghe e casuali sei a posto. Tieni presente che alcuni utilizzano VPN per motivi benevoli e che bloccheresti il servizio anche a loro.
Ciao!

Pensandoci hai ragione, alla fine molte persone per tutelare la propria privacy fanno uso di VPN quindi bloccherei il traffico ad eventuali visitatori "legit".
Ho installato Login LockDown che svolge un egregio lavoro, blocca l'IP dopo X tentativi di accesso, anche da utenze che non esistono.
Ho notato che i tentativi di log-in sono diminuiti dopo ciò, quindi direi che per ora va bene così.
Grazie per il Plug-In, penserò su se installarlo o meno!
 
Stato
Discussione chiusa ad ulteriori risposte.