
Sperimentazione CVE-2021-44790

Obiettivo dello sfruttamento: Sfruttare la vulnerabilità di buffer overflow per effettuare un attacco DOS sul bersaglio.
Passo 1: Sul lato della macchina vittima:
**Apache24/bin** per eseguire **httpd.exe.**
Passo 2: Sulla macchina attaccante:


Errore di reset della connessione iniziale:
La prima parte del log mostra ConnectionResetError104
si è verificato un problema con uno specifico codice di errore
, che significa "Reset della connessione peer". Questo accade solitamente quando il server remoto ("peer") riceve la tua richiesta di connessione ma poi la chiude improvvisamente.
Libreria Urllib3 e richiesta:
Lo script sembra utilizzare la libreria requestsurllib3
, quindi si basa su di essa
per creare connessioni HTTP.


Passo 3: Sulla macchina vittima:
[Wed Nov 29 15:11:58.320403 2023] [mpm_winnt:notice] [pid 6224:tid 732] AH00428: Parent: child process 7220 exited with status 3221225477 -- Restarting.3221225477. Questo potrebbe essere un errore dovuto all'accesso a una zona di memoria non valida o un errore simile. Apache quindi tenta di riavviare il processo.
httpd.exe, che è il file eseguibile del server HTTP Apache. Il modulo che ha causato l'errore è MSVCR110.dll11.0.51106.1. Il codice eccezione è 0xc0000005, che di solito indica una violazione di accesso. Ciò significa che il programma ha tentato di leggere o scrivere in una posizione di memoria a cui non avrebbe dovuto avere accesso, una causa comune di crash dell'applicazione.
Configurazione di httpd.conf :
Modificare il percorso

Abilitare il modulo Lua

Aggiungere un Handler per il modulo Lua

Contenuto di test.lua e percorso:

La libreria urllib3
sta tentando di aprire una connessione e inviare una richiesta, ma fallisce a causa del reset della connessione.
Gestione delle eccezioni nella libreria:
Sia urllib3 che requests (o urllib3??) stanno catturando e rilanciando eccezioni. La libreria
sta tentando di aumentare il numero di tentativi per la richiesta, indicando che potrebbe essere configurata per riprovare in caso di fallimento, ma alla fine rinuncia dopo aver esaurito i tentativi.
Errore finale di connessione nella richiesta:
L'eccezione finale sollevata dalla libreria requests è ConnectionError
, che è un file
. Questa è un'eccezione generica sollevata quando non è possibile stabilire una connessione al server, cosa che può accadere se il server resetta la connessione.