
تحويل طلبات/استجابات HTTP الخام إلى ملفات PCAP لاختبار قواعد Snort IDS وتحليل أمان الشبكة. يدعم النشر عبر Docker والاستخدام عبر سطر الأوامر.
Re2Pcap اختصار لـ Request2Pcap و Response2Pcap. يمكن لمستخدمي المجتمع إنشاء ملف PCAP بسرعة باستخدام Re2Pcap واختباره مقابل قواعد Snort.
يتيح لك Re2Pcap إنشاء ملف PCAP بسرعة لطلب HTTP خام كما هو موضح أدناه
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
أو
docker run --rm --cap-add NET_ADMIN -p 5000:5000 --name re2pcap amitraut/re2pcap
افتح localhost:5000 في متصفح الويب الخاص بك للوصول إلى Re2Pcap أو استخدم سكريبت Re2Pcap-cmd للتفاعل مع حاوية Re2Pcap للحصول على PCAP في دليل العمل الحالي
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"]
كما هو موضح في الصورة أعلاه، Re2Pcap هو تطبيق Python3 مبني على Alpine Linux مع واجهة ويب Flask
يقوم Re2Pcap بتحليل البيانات المدخلة كطلب HTTP خام أو رد وينفذ فعليًا تفاعل عميل/خادم أثناء التقاط الحزم. بعد التفاعل، يعرض Re2Pcap الحزم الملتقطة كملف PCAP
Host: somedomain:5000 أي المنفذ 5000، يرجى تغيير تطبيق Flask ليعمل على منفذ آخر عن طريق تعديل استدعاء app.run في Re2Pcap.Py، وإلا سيحتوي PCAP على رد تطبيق Flaskإذا كان طلب HTTP الخام بدون رأس Accept-Encoding: فسيتم إضافة Accept-Encoding: identity في الطلب
هذا سيء حقًا. Accept-Encoding: identity صالح دائمًا، تنص RFCs على ذلك. يجب أن يكون غير ضار تمامًا إرساله. بخلاف ذلك، يتطلب إزالته استبدال httplib. هذا قدر كبير من العمل. =(
عناوين IP للمصدر والوجهة في PCAPs من Re2Pcap هي كما يلي
يُرجى استخدام خيار tcprewrite -D لتعديل IP الوجهة إلى شيء آخر حسب احتياجك. يمكنك أيضًا استخدام tcpprep و tcprewrite لتعيين IPs أخرى كنقاط نهاية. نظرًا لعدم تناسق نتائج tcprewrite، استخدمت طريقة بديلة لتعيين IPs مصدر/وجهة مختلفة
تحديد HTTP/1.1 302 FOUND كرد سيؤدي إلى إنشاء PCAP بأقصى عدد ممكن من المحاولات للوصول إلى المورد المحدد في رأس Location:. يُرجى تصدير أول تدفق HTTP باستخدام wireshark في الاختبار إذا كنت لا تفضل الضوضاء الإضافية للتيارات الأخرى
أتمنى أن تجد Re2Pcap مفيدًا. إذا واجهت مشكلات مع Re2Pcap، يُرجى إنشاء مشكلة مع مدخلاتك. شكرًا لك! :)
استمتع 😊