← חזרה לרשימת המאמרים

DroneSpy: Multi-Stage Core Network CTF Framework (Operation BLACKBIRD)

מאת שי מרדכי | 17 ביוני 2025 | פרויקט רשתות מתקדמות ע"י ברק גונן

על הפרויקט ומתודולוגיית הריכוז במלחמה

פרויקט DroneSpy הוא מערך אתגרי סייבר ורשתות (CTF Framework) רב-שלבי המנוהל על ידי שרת ליבה כבד שפותח מאפס, והוא מונה כ-7,000 שורות קוד ב-C++ ופייתון. כתיבת הארכיטקטורה נעשתה בשלבים מורכבים של שירות מילואים פעיל תחת תנאי לחימה, והיוותה עוגן מחשבתי שאיפשר לי לעבור בהצלחה את כל מבחני סוף הסמסטר מיד עם החזרה ללימודים באקדמיה.

הפרויקט זכה לציון 100 עגול וצוין על ידי המרצה כאחד הפרויקטים המרשימים והטובים ביותר שהוגשו בקורס.

סיפור המסגרת (The Narrative)

בעקבות תקרית מבצעית בגבול הצפון, כלי טיס איראני נפל לידי המודיעין. בתוכו התגלה מודול מוסתר המשמש כשרת ריגול זדוני. המשימה: לחדור לשרת, לנתח את שיטות הפעולה שלו, ולהוציא את המודיעין הסופי.

ארכיטקטורת האתגרים (Mission Phases)

ה-CTF בנוי מ-3 שלבים עוקבים, כאשר שרת הליבה מנהל את ה-State ומונע מעקפים (Bypass Prevention) באמצעות מנגנון Persistent Tracking.

שלב 1: ICMP Covert Channel

האתגר: המשתתף מקבל רמז מקודד (bbHHh!) המרמז על פורמט ה-Struct של חבילת ה-ICMP ב-Python. השרת דורש קבלת 5 חבילות Ping עם ID ספציפי (0x1337), בטווחי זמן של 9-11 שניות, ובגודל Payload עולה (0, 100, 200, 300, 400 בתים).

המכשול הארכיטקטוני: במהלך המימוש ב-Windows/WSL2, מערכת ההפעלה נטתה לטפל בפינגים של ה-Localhost בעצמה ולהחזיר Reply מבלי לנתב את המידע לשרת האפליקטיבי. האתגר נפתר באמצעות מעבר ל-Scapy וקינפוג כירורגי של ממשקי הרשת והאינדקסים שלהם.

שלב 2: Certificate Authority Infiltration (MITM)

האתגר: חדירה לתשתית ה-PKI של רשת הריגול. המשתתף מנתח קובץ PCAP ומגלה שהשרת דורש תעודת TLS מ-CA איראני ספציפי.

הביצוע: המשתתף מיירט בקשת Certificate Signing Request (CSR) שגויה באמצעות Burp Suite, מתקן את שדות ה-Subject, ושולח ל-CA. לאחר שה-CA חותם, התוכנה מוחקת את המפתח הפרטי (client.key). המשתתף חייב לבצע Forensic Analysis למערכת הקבצים (למשל עם Recuva/Procmon) כדי לשחזר את המפתח שנמחק ולבצע אימות TLS מלא מול השרת הראשי.

שלב 3: Steganography & Enigma Cryptanalysis

האתגר: השרת מוריד למחשב המשתתף תמונת Open-Me.png. בתוך ה-Hex של התמונה מסתתר בלוק טקסט המכיל קונפיגורציה של מכונת אניגמה (Enigma) היסטורית.

הביצוע: לאחר פיענוח הודעות האניגמה, המשתתף נדרש לבקש מהשרת GET /audio. השרת שולח זרם Base64 טקסטואלי של קובץ MP3 בתוך ה-HTTP Response. המשתתף מפענח את ה-Base64 לקובץ שמע של מריו, שבסופו מוטמע קוד מורס (Morse Code) המכיל את דגל הסיום.

Technical Implementation Snippet

כך יושם מנגנון הזרמת קובץ השמע כ-Base64 על גבי Socket של TLS לאחר אימות מורכב:

import base64

def send_audio(self, ssl_socket):
    # Read the actual MP3 file binary
    with open('music/mario.mp3', 'rb') as f:
        b64_mp3 = base64.b64encode(f.read())
        
    # Craft HTTP 200 OK response with the Base64 stream payload
    response = b"HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\n" + b64_mp3
    ssl_socket.sendall(response)

סיכום והערך המחקרי

הפרויקט דורש הבנה עמוקה ב-Malware Analysis, Socket Programming, PKI, Steganography ו-Packet Crafting. בניית הסביבה האוטונומית הזו איפשרה לי לחבר את תחומי הרשתות ואבטחת המידע (Cybersecurity) לכדי מוצר תשתיתי שלם.

לצפייה בקוד המלא, בקרו ב-Repository בגיטהאב: ctf-networks-challenges