
Convierte solicitudes/respuestas HTTP en bruto en archivos PCAP para probar reglas Snort IDS y análisis de seguridad de red. Admite implementación con Docker y uso desde la línea de comandos.
Re2Pcap es la abreviatura de Request2Pcap y Response2Pcap. Los usuarios de la comunidad pueden crear rápidamente un archivo PCAP usando Re2Pcap y probarlos contra las reglas de Snort.
Re2Pcap te permite crear rápidamente un archivo PCAP para peticiones HTTP sin procesar como las que se muestran a continuación
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
O
docker run --rm --cap-add NET_ADMIN -p 5000:5000 --name re2pcap amitraut/re2pcap
Abre localhost:5000 en tu navegador web para acceder a Re2Pcap o usa el script Re2Pcap-cmd para interactuar con el contenedor Re2Pcap y obtener el PCAP en el directorio de trabajo actual
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"]
Como se muestra en la imagen anterior, Re2Pcap es una aplicación Python3 basada en Alpine Linux con una interfaz web basada en Flask
Re2Pcap analiza los datos de entrada como una petición o respuesta HTTP sin procesar y realmente realiza la interacción cliente/servidor mientras captura paquetes. Después de la interacción, Re2Pcap presenta los paquetes capturados como un archivo PCAP.
Host: somedomain:5000 (es decir, puerto 5000), cambia la aplicación Flask para que se ejecute en otro puerto modificando la llamada app.run en Re2Pcap.Py, de lo contrario el PCAP contendrá la respuesta de la aplicación FlaskSi la petición HTTP sin procesar no tiene el encabezado Accept-Encoding:, se agrega Accept-Encoding: identity a la petición
Esto es realmente bastante terrible. Accept-Encoding: identity siempre es válido, así lo dicen los RFC. Debería ser completamente inofensivo enviarlo. De lo contrario, eliminarlo requiere reemplazar httplib. Eso es una cantidad sustancial de trabajo. =(
Las siguientes son IPs de origen y destino en los PCAPs de Re2Pcap
Por favor, usa la opción tcprewrite -D para modificar la IP de destino a otra según tu necesidad. También puedes usar tcpprep y tcprewrite para establecer otras IPs como extremos. Debido a resultados inconsistentes de tcprewrite, utilicé una forma alternativa para establecer diferentes IPs de origen/destino
Especificar HTTP/1.1 302 FOUND como respuesta generará un PCAP con el máximo número de reintentos posibles para alcanzar el recurso especificado en el encabezado Location:. Por favor, exporta el primer flujo HTTP usando wireshark en las pruebas si no te gusta el ruido adicional de otros flujos
Espero que encuentres útil Re2Pcap. Si tienes problemas con Re2Pcap, por favor crea un issue con tus datos. ¡Gracias! :)
Disfruta 😊