"Allrequestsallowed.com" ... Tentativo di hack?


11

Ho molti tentativi sul mio server Web (piccolo, personale e assolutamente non importante) e apache e fail2ban di solito fanno bene il loro lavoro. Ma c'è una voce di registro che mi preoccupa:

xx.yy.www.zzz - - [9/Jul/2011:12:42:15 +0100] "GET http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043YVMWTW_B%5CFAP HTTP/1.1" 200 432 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"

Il problema è che la risposta non era un codice 404, ma un 200 invece. Va bene? Mi sembra strano, ma la mia conoscenza di questo campo (e di molti altri) è, per dirla in parole povere, limitata.


1
Sembra che io non sono autorizzato a pubblicare una nuova risposta, ma abbiamo trovato una voce simile nel nostro log, e siamo stati in grado di verificare che non era pericoloso riproducendo la richiesta con l'arricciatura: curl -v http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043YVMWTW_B%5CFAP -x www.example.com:80. La configurazione predefinita sembra restituire una pagina "Benvenuti in nginx" senza contenuto significativo, sul nostro sistema Ubuntu. Quindi è una risposta 200, ma è una semplice pagina generale: in realtà non stiamo inoltrando la richiesta altrove o qualcosa del genere.
Frank Farmer,

Risposte:


12

Innanzi tutto, non so cosa il presunto attaccante sta cercando di realizzare. Forse c'è uno script PHP o una versione PHP là fuori vulnerabili a qualche strano attacco ID sessione, non lo so. Tuttavia, probabilmente non hai nulla di cui preoccuparti.

Il tuo server si è comportato esattamente come previsto. 200 è il codice previsto in quella particolare situazione a causa del modo in cui Apache interpreta l'URL che gli viene passato.

Innanzitutto, http://allrequestsallowed.comviene trattata come la più comune intestazione "Host:" ( nota che non penso che questo sia specificato nell'RFC e che altri server potrebbero non interpretarlo in questo modo mi sbagliavo, questo è specificato nell'RFC 2616 nella sezione 5.1. 2, anche se i client sembrano raramente utilizzare quel modulo. Mi scusi, devo sistemare un'implementazione del server HTTP che ho scritto qualche tempo fa ...).

Ora, presumibilmente non hai un sito chiamato "allrequestsallowed.com". Quindi cosa succede quando Apache ottiene Host:un'intestazione (o equivalente) per un nome host che non riconosce? Seleziona il primo host virtuale come predefinito. Questo è un comportamento ben definito e documentato per Apache. Quindi, qualunque sia il tuo primo host virtuale (o solo la configurazione del server principale se non ci sono vhosts) prende il sopravvento, indipendentemente dal nome.

Ora, il resto dell'URL fornito è composto da due parti: il percorso /e un parametro GET (il ?PHPSESSID...bit).

Ora, il percorso /dovrebbe essere presente praticamente su tutti i web server là fuori. Nella maggior parte dei casi, si associa a qualcosa di simile index.htmlo forse a uno index.phpscript, anche se puoi ovviamente ignorare tutto questo.

Se si associa a un file HTML statico, non accade assolutamente nulla di insolito: il contenuto del file viene restituito, ed è questo, il parametro viene semplicemente ignorato. (Supponendo che non siano state impostate alcune direttive di configurazione avanzata e quasi sicuramente non lo si fa.)

D'altra parte, se si tratta di uno script di qualche tipo, quella PHPSESSIDvariabile verrà passata allo script. Se lo script utilizza effettivamente quella variabile (in questo caso particolare, è probabile che solo gli script PHP che utilizzano la gestione della sessione integrata di PHP), il suo comportamento dipenderà dal contenuto.

Con ogni probabilità, tuttavia, anche se ti /capita di mappare uno script PHP usando sessioni, non accadrà nulla di straordinario. L'ID sessione probabilmente non esisterà comunque e verrà ignorato o lo script mostrerà un errore.

Nel caso improbabile che esista l'ID sessione, beh, l'attaccante potrebbe presumibilmente dirottare la sessione di qualcun altro. Sarebbe un male, ma non è in realtà un buco di sicurezza in sé - il buco sarebbe ovunque l'attaccante ricevesse le informazioni sull'ID di sessione (annusare una rete wireless è un buon candidato se non stai usando HTTPS). In realtà non sarebbero in grado di fare nulla che l'utente la cui sessione era originariamente non potesse fare.

Modifica: Inoltre, '% 5C' all'interno di SESSIONID viene mappato a un carattere barra rovesciata. Questo sembra essere un test per attacchi di attraversamento di directory su host Windows.


Ho avuto richieste simili 404, 500, 403 e 20x sui miei server in esecuzione nginxo lighttpd, e dopo aver inviato gli IP / host di origine a una società di analisi informatica, è stato confermato che si trattava di tentativi di sfruttare i buchi nel server tra le altre cose . Richieste simili a quella specificata dall'OP, host diversi. Stai dicendo che dovrebbero essere completamente ignorati? Perché se sono veramente preoccupati, possono bloccare l'host (s) in iptables.
Thomas Ward

@The Evil Phoenix: l'host nell'URL non è da dove proviene la richiesta, è solo l'equivalente di un'intestazione "Host:". L'indirizzo IP effettivo del client, che OP ha nascosto, potrebbe essere bloccato con iptables se lo desiderava, ma a meno che non venga inondato di richieste, non importa davvero. Solo perché qualcuno cerca di sfruttare un buco non significa che sia presente un buco. Gestisco numerosi server (Linux) che registrano molte strane richieste intese a sfruttare i buchi ogni giorno, la maggior parte dei quali buchi di Windows / IIS! È solo una scansione cieca. Se non ottiene un successo, passa al successivo indirizzo IP.
Nicholas Knight,

@The Evil Phoenix: Inoltre, se fosse presente un buco , bloccare l'indirizzo IP che lo sfruttava non farebbe un po 'di bene. Il tuo server sarebbe già stato compromesso e sarebbe comunque vulnerabile allo stesso attacco da altre fonti - e ci sono molte fonti. Ogni sistema di zombi là fuori (e ce ne sono molti milioni) è una potenziale fonte di scansioni dannose.
Nicholas Knight,

Spiegazione piacevole e completa .... Grazie mille. Ho oscurato l' IP offensivo nel caso in cui ip / e-surf navighi :). Il mio / mappa per impostazione predefinita di Apache "Funziona" (lo so, non professionale ... ma ho detto che era personale, lol). Quindi presumo di non dover fare nulla a meno che lo stesso IP non diventi un problema, nel qual caso lo bloccherò con iptables (o anche hosts.deny?). Grazie ancora.
Luri,

1

Ho ricevuto tutte queste richieste su un ip che viene utilizzato come record per tutti i nostri domini di parcheggio.

Il mio tiro è che questo nome host viene utilizzato in combinazione con il file host locale "attaccante" che punta all'host di destinazione.

Il server web effettivo al 31.44.184.250 è solo per gestire le richieste esterne.

La mia opinione: totale innocuo. Non vedere alcun valore aggiunto per l'uso ad eccezione di cose che puoi fare con qualsiasi altro nome di dominio falso nel tuo file host.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.