
Converte richieste/risposte HTTP grezze in file PCAP per testare le regole Snort IDS e l'analisi della sicurezza di rete. Supporta il deployment Docker e l'utilizzo da riga di comando.
Re2Pcap è l'abbreviazione di Request2Pcap e Response2Pcap. Gli utenti della comunità possono creare rapidamente file PCAP usando Re2Pcap e testarli contro le regole di Snort.
Re2Pcap ti permette di creare rapidamente un file PCAP per una richiesta HTTP grezza come mostrato di seguito
POST /admin/tools/iplogging.cgi HTTP/1.1
Host: 192.168.13.31:80
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/plain, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.13.31:80/admin/tools/iplogging.html
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 63
Cookie: token=1e9c07e135a15e40b3290c320245ca9a
Connection: close
tcpdumpParams=tcpdump -z reboot -G 2 -i eth0&stateRequest=start
git clone https://github.com/Cisco-Talos/Re2Pcap.git
cd Re2Pcap/
./re2pcap.sh
OPPURE
docker run --rm --cap-add NET_ADMIN -p 5000:5000 --name re2pcap amitraut/re2pcap
Apri localhost:5000 nel tuo browser web per accedere a Re2Pcap o usa lo script Re2Pcap-cmd per interagire con il contenitore Re2Pcap e ottenere il PCAP nella directory di lavoro corrente
FROM alpine
# Get required dependencies and setup for Re2Pcap
RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
RUN apk update && apk add python3 tcpdump tcpreplay
RUN pip3 install --upgrade pip
RUN pip3 install pexpect flask requests httpretty requests-toolbelt
COPY Re2Pcap/ /Re2Pcap
RUN cd Re2Pcap && chmod +x Re2Pcap.py
WORKDIR /Re2Pcap
EXPOSE 5000/tcp
# Run application at start of new container
CMD ["/usr/bin/python3", "Re2Pcap.py"]
Come mostrato nell'immagine sopra, Re2Pcap è un'applicazione Python3 basata su Alpine Linux con interfaccia web basata su Flask
Re2Pcap analizza i dati di input come richiesta o risposta HTTP grezza e di fatto esegue un'interazione client/server catturando i pacchetti. Dopo l'interazione, Re2Pcap presenta i pacchetti catturati come file PCAP
Host: somedomain:5000 cioè porta 5000, si prega di cambiare l'applicazione Flask per eseguire su un'altra porta modificando la chiamata app.run in Re2Pcap.Py, altrimenti il PCAP conterrà la risposta dell'applicazione FlaskSe la richiesta HTTP grezza è senza intestazione Accept-Encoding:, viene aggiunta Accept-Encoding: identity nella richiesta
That's really fairly terrible. Accept-Encoding: identity is always valid, the RFCs say so. It should be utterly harmless to send it along. Otherwise, removing this requires us to replace httplib. That's a substantial bit of work. =(
I seguenti sono gli IP di origine e destinazione nei PCAP di Re2Pcap
Si prega di usare l'opzione tcprewrite -D per modificare l'IP di destinazione in qualcosa di diverso secondo le proprie esigenze. È anche possibile usare tcpprep e tcprewrite per impostare altri IP come endpoint. A causa del risultato inconsistente di tcprewrite ho usato un modo alternativo per impostare diversi IP SRC/DST
Specificare HTTP/1.1 302 FOUND come risposta genererà un PCAP con il massimo numero di tentativi possibile per raggiungere la risorsa specificata nell'intestazione Location:. Si prega di esportare il primo flusso HTTP usando wireshark nei test se non si desidera il rumore aggiuntivo degli altri flussi
Spero che Re2Pcap ti sia utile. Se incontri problemi con Re2Pcap, per favore apri un issue con i tuoi input. Grazie! :)
Divertiti 😊