
Convertissez des requêtes/réponses HTTP brutes en fichiers PCAP pour tester les règles Snort IDS et l'analyse de la sécurité réseau. Prend en charge le déploiement Docker et l'utilisation en ligne de commande.
Re2Pcap est l'abréviation de Request2Pcap et Response2Pcap. Les utilisateurs de la communauté peuvent rapidement créer un fichier PCAP à l'aide de Re2Pcap et les tester contre les règles Snort.
Re2Pcap vous permet de créer rapidement un fichier PCAP pour une requête HTTP brute comme ci-dessous
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
OU
docker run --rm --cap-add NET_ADMIN -p 5000:5000 --name re2pcap amitraut/re2pcap
Ouvrez localhost:5000 dans votre navigateur web pour accéder à Re2Pcap ou utilisez le script Re2Pcap-cmd pour interagir avec le conteneur Re2Pcap et obtenir le PCAP dans le répertoire de travail actuel
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"]
Comme montré dans l'image ci-dessus, Re2Pcap est une application Python3 basée sur Alpine Linux avec une interface web basée sur Flask
Re2Pcap analyse les données d'entrée comme une requête ou réponse HTTP brute et effectue effectivement l'interaction client/serveur tout en capturant les paquets. Après l'interaction, Re2Pcap présente les paquets capturés sous forme de fichier PCAP
Host: somedomain:5000 c'est-à-dire le port 5000, veuillez modifier l'application Flask pour qu'elle s'exécute sur un autre port en modifiant l'appel app.run de Re2Pcap.Py, sinon le PCAP contiendra la réponse de l'application FlaskSi la requête HTTP brute est sans en-tête Accept-Encoding:, alors Accept-Encoding: identity est ajouté à la requête
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. =(
Voici les adresses IP source et destination dans les PCAP de Re2Pcap
Veuillez utiliser l'option tcprewrite -D pour modifier l'IP de destination selon vos besoins. Vous pouvez également utiliser tcpprep et tcprewrite pour définir d'autres IPs comme points de terminaison. En raison des résultats incohérents de tcprewrite, j'ai utilisé une autre méthode pour définir des IPs SRC/DST différentes
Spécifier HTTP/1.1 302 FOUND comme réponse générera un PCAP avec un maximum de tentatives pour atteindre la ressource spécifiée dans l'en-tête Location:. Veuillez exporter le premier flux HTTP en utilisant Wireshark lors des tests si vous ne voulez pas du bruit supplémentaire des autres flux
J'espère que Re2Pcap vous sera utile. Si vous rencontrez des problèmes avec Re2Pcap, veuillez créer un ticket avec vos entrées. Merci ! :)
Profitez-en 😊