
Snort IDS नियमों और नेटवर्क सुरक्षा विश्लेषण के परीक्षण के लिए कच्चे HTTP अनुरोधों/प्रतिक्रियाओं को PCAP फ़ाइलों में परिवर्तित करें। Docker परिनियोजन और कमांड-लाइन उपयोग का समर्थन करता है।
Re2Pcap, Request2Pcap और Response2Pcap का संक्षिप्त रूप है। सामुदायिक उपयोगकर्ता Re2Pcap का उपयोग करके शीघ्रता से PCAP फ़ाइल बना सकते हैं और इसे Snort नियमों के विरुद्ध परीक्षण कर सकते हैं।
Re2Pcap आपको नीचे दिखाए गए कच्चे HTTP अनुरोध के लिए शीघ्रता से PCAP फ़ाइल बनाने की अनुमति देता है
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 कंटेनर के साथ इंटरैक्ट करने और वर्तमान कार्यशील निर्देशिका में PCAP प्राप्त करने के लिए Re2Pcap-cmd स्क्रिप्ट का उपयोग करें।
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 Alpine Linux आधारित Python3 एप्लिकेशन है जिसमें Flask आधारित वेब इंटरफ़ेस है
Re2Pcap इनपुट डेटा को कच्चे HTTP अनुरोध या प्रतिक्रिया के रूप में पार्स करता है और पैकेट कैप्चर करते समय वास्तव में क्लाइंट/सर्वर इंटरैक्शन करता है। इंटरैक्शन के बाद Re2Pcap कैप्चर किए गए पैकेट को PCAP फ़ाइल के रूप में प्रस्तुत करता है
Host: somedomain:5000 यानी पोर्ट 5000 के लिए PCAP बना रहे हैं, तो कृपया Re2Pcap.Py में app.run कॉल को संशोधित करके Flask एप्लिकेशन को दूसरे पोर्ट पर चलाने के लिए बदलें, अन्यथा PCAP में Flask एप्लिकेशन प्रतिक्रिया शामिल होगीयदि कच्चे HTTP अनुरोध में Accept-Encoding: हेडर नहीं है, तो अनुरोध में Accept-Encoding: identity जोड़ा जाता है
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. =(
Re2Pcap से PCAP में निम्नलिखित स्रोत और गंतव्य IP हैं:
कृपया अपनी आवश्यकता के अनुसार गंतव्य IP को कुछ और संशोधित करने के लिए tcprewrite -D विकल्प का उपयोग करें। आप अन्य IP को एंडपॉइंट के रूप में सेट करने के लिए tcpprep और tcprewrite का भी उपयोग कर सकते हैं। tcprewrite के असंगत परिणाम के कारण, मैंने अलग SRC/DST IP सेट करने के लिए वैकल्पिक तरीके का उपयोग किया।
प्रतिक्रिया के रूप में HTTP/1.1 302 FOUND निर्दिष्ट करने से Location: हेडर में निर्दिष्ट संसाधन तक पहुँचने के लिए अधिकतम संभव पुनर्प्रयासों के साथ PCAP उत्पन्न होगा। यदि आपको अन्य स्ट्रीम का अतिरिक्त शोर पसंद नहीं है, तो कृपया परीक्षण में wireshark का उपयोग करके पहले HTTP स्ट्रीम को निर्यात करें।
मुझे आशा है कि आपको Re2Pcap उपयोगी लगेगा। यदि आपको Re2Pcap के साथ समस्याएँ आती हैं, तो कृपया अपने इनपुट के साथ एक मुद्दा बनाएँ। धन्यवाद! :)
आनंद लें 😊