
यूट्यूब as covert-channel - वीडियो अपलोड करके सिस्टम को दूर से नियंत्रित करें और कमांड निष्पादित करें
Youtube पर वीडियो अपलोड करके सिस्टम को दूरस्थ रूप से नियंत्रित करने का एक प्रोग्राम, जो वीडियो और लिसनर बनाने के लिए Python का उपयोग करता है, जो कुछ मैलवेयर का अनुकरण करता है जिसके बारे में मैं पढ़ रहा था। यह साधारण टेक्स्ट, क्लियरटेक्स्ट के साथ QR कोड या AES एन्क्रिप्शन का उपयोग करके QR कोड से बने फ्रेम वाले वीडियो बनाने की अनुमति देता है।
नोट: इस PoC को covert-control फ्रेमवर्क में जोड़ा गया है, जो इसे Onedrive, Google Drive और Telegram का उपयोग करके भी करने की अनुमति देता है।
यदि आपका लक्ष्य Windows सिस्टम है, तो आप C# संस्करण पसंद कर सकते हैं: SharpCovertTube (मैंने इसे हाल ही में अपडेट किया है)।
generate_video.py का उपयोग करके वीडियो बनाए जा सकते हैं: कमांड दर्ज करें और "exit" लिखकर वीडियो जनरेट करें। जनरेट किया गया वीडियो डिफ़ॉल्ट रूप से output.avi कहलाता है (जिसे config.py में अपडेट किया जा सकता है):
python3 generate_video.py

python3 main.py
लिसनर डिफ़ॉल्ट रूप से हर 300 सेकंड में Youtube चैनल की जाँच करेगा (जिसे config.py में अपडेट किया जा सकता है)। पहले वीडियो अपलोड किया जाता है:

चैनल में एक नया वीडियो मिलने के बाद, इसे डाउनलोड किया जाता है और कमांड निष्पादित किए जाते हैं:

हम कमांड का आउटपुट देख सकते हैं:

config.py फ़ाइल को अपडेट करें:
channel_id (अनिवार्य!!!): अपना Youtube चैनल ID यहां से प्राप्त करें।
api_key (अनिवार्य!!!): API कुंजी प्राप्त करने के लिए एक एप्लिकेशन बनाएं और कुंजी यहां से जनरेट करें।
image_type (वैकल्पिक। डिफ़ॉल्ट: "qr_aes"): वीडियो के लिए विभिन्न प्रकार की छवियाँ।
upload_seconds_delay (वैकल्पिक। डिफ़ॉल्ट: 300): सेकंड में विलंब जब तक यह जाँच न हो कि कोई नया वीडियो अपलोड हुआ है या नहीं।
debug (वैकल्पिक। डिफ़ॉल्ट: True): संदेश प्रिंट करें या नहीं।
aes_key (वैकल्पिक। डिफ़ॉल्ट: "covert-tube_2021"): AES एन्क्रिप्शन के लिए कुंजी, "qr_aes" विकल्प में उपयोग की जाती है।
generated_video_path (वैकल्पिक। डिफ़ॉल्ट: "output.avi"): generate_video.py से जनरेट किए गए वीडियो का पथ।
downloaded_video_path (वैकल्पिक। डिफ़ॉल्ट: "/tmp/test.mp4"): वह पथ जहाँ नया वीडियो डाउनलोड किया जाएगा।
temp_folder (वैकल्पिक। डिफ़ॉल्ट: "/tmp/"): वह पथ जहाँ वीडियो के प्रत्येक फ्रेम की छवियाँ image_X*.png* प्रारूप में संग्रहीत की जाती हैं।
पूरे प्रोजेक्ट के लिए:
sudo apt install libzbar0
pip3 install Pillow opencv-python youtube_dl pytesseract pyqrcode pypng pyzbar pycrypto
git clone https://github.com/ricardojoserf/covert-tube
pyinstaller --onefile main.py
cp dist/main covert-tube
rm -rf dist build
rm main.spec
हाल ही में मैं मैलवेयर के बारे में पढ़ रहा था जो अपने सेटिंग को दूरस्थ रूप से नियंत्रित करने के लिए Youtube का उपयोग करता है। उदाहरण के लिए, Casbaneiro अपने C&C सर्वर डोमेन को संग्रहीत करने के लिए YouTube का दुरुपयोग करता है। खतरा अभिकर्ता द्वारा उपयोग किए जाने वाले चैनलों पर प्रत्येक वीडियो में एक विवरण होता है और इनके अंत में C&C सर्वर डोमेन वाले एक नकली Facebook या Instagram url का लिंक होता है (Welivesecurity blog)। दूसरा उदाहरण Numando है, जो Youtube वीडियो के शीर्षक में डेटा को एन्क्रिप्ट करके इसका दुरुपयोग करता है (अन्य Welivesecurity blog)।
यह जानकर मैंने Youtube पर वीडियो अपलोड करके दूरस्थ सिस्टम के नियंत्रण का परीक्षण करने के लिए एक PoC बनाने का निर्णय लिया, लेकिन शीर्षक या विवरण का उपयोग करने के बजाय, वीडियो की सामग्री का उपयोग करके। यह किसी भी कमांड को निष्पादित करने की अनुमति देता है, लेकिन इसका उपयोग दूरस्थ रूप से कुछ सेटिंग बदलने के लिए किया जा सकता है। तो यह सिर्फ एक PoC है, इसे शैक्षिक उद्देश्यों के लिए उपयोग करें!