هن آرٽيڪل سان گڏ اسان اشاعتن جو سلسلو مڪمل ڪريون ٿا جيڪي خراب سافٽ ويئر جي تجزيي لاءِ وقف ڪيا ويا آهن. IN
اڄ Ilya Pomerantsev، CERT Group-IB ۾ مالويئر جي تجزيي جو ماهر، مالويئر تجزيي جي پهرين مرحلي بابت ڳالهائيندو - CERT Group-IB ماهرن جي مشق مان ٽن ميني ڪيسن جو مثال استعمال ڪندي AgentTesla نمونن جي نيم خودڪار پيڪنگ.
عام طور تي، مالويئر تجزيي ۾ پهريون مرحلو هڪ پيڪر، ڪرپٽر، محافظ يا لوڊر جي صورت ۾ تحفظ کي ختم ڪرڻ آهي. اڪثر ڪيسن ۾، هي مسئلو حل ڪري سگهجي ٿو مالويئر کي هلائڻ ۽ ڊمپ کي انجام ڏيڻ، پر حالتون آهن جتي اهو طريقو مناسب ناهي. مثال طور، جيڪڏهن مالويئر هڪ انڪرپٽر آهي، جيڪڏهن اهو پنهنجي ميموري وارن علائقن کي ڊمپ ٿيڻ کان بچائي ٿو، جيڪڏهن ڪوڊ ۾ ورچوئل مشين جي ڳولا واري ميڪانيزم شامل آهي، يا جيڪڏهن مالويئر شروع ٿيڻ کان پوءِ فوري طور تي ريبوٽ ٿئي ٿو. اهڙين حالتن ۾، نام نهاد "نيم-خودڪار" unpacking استعمال ڪيو ويندو آهي، اهو آهي، محقق کي پروسيس تي مڪمل ڪنٽرول آهي ۽ ڪنهن به وقت مداخلت ڪري سگهي ٿو. اچو ته هن طريقيڪار تي غور ڪريو AgentTesla خاندان جي ٽن نمونن کي مثال طور استعمال ڪندي. اھو ھڪڙو نسبتا نقصانڪار مالويئر آھي جيڪڏھن توھان ان جي نيٽ ورڪ جي رسائي کي بند ڪريو.
نموني نمبر 1
ماخذ فائل هڪ MS Word دستاويز آهي جيڪو استحصال ڪري ٿو CVE-2017-11882.
نتيجي طور، پيل لوڊ ڊائون لوڊ ۽ لانچ ڪيو ويو آهي.
عمل جي وڻ جو تجزيو ۽ رويي جي نشانن کي پروسيس ۾ انجڻ ڏيکاري ٿو RegAsm.exe.
AgentTesla جي رويي جي نشانين جا خاصيتون آهن.
ڊائون لوڊ ٿيل نمونو قابل عمل آھي .NET- هڪ محافظ طرفان محفوظ ڪيل فائل .NET ريڪٽر.
اچو ته ان کي يوٽيلٽي ۾ کوليون dnSpy x86 ۽ داخل ٿيڻ واري پوائنٽ ڏانھن وڃو.
فنڪشن ۾ وڃڻ سان DateTimeOffset، اسان نئين لاء شروعاتي ڪوڊ ڳوليندا سين .NET- ماڊل. اچو ته وجھون وقفي پوائنٽ لائن تي اسان کي دلچسپي آهي ۽ فائل کي هلائيندا آهيون.
واپسي بفرن مان ھڪڙي ۾ توھان ڏسي سگھو ٿا MZ دستخط (0x4D 0x5A). اچو ته ان کي بچايو.
هڪ ڊمپ ٿيل عملدار فائل هڪ متحرڪ لائبريري آهي جيڪو هڪ لوڊ ڪندڙ آهي، يعني. ريسورس سيڪشن مان پيل لوڊ ڪڍي ٿو ۽ ان کي لانچ ڪري ٿو.
ساڳئي وقت، ضروري وسيلا پاڻ ڊمپ ۾ موجود نه آهن. اهي والدين نموني ۾ آهن.
افاديت dnSpy ٻه انتهائي ڪارآمد ڪارڪردگي آهن جيڪي اسان کي ٻن لاڳاپيل فائلن مان ”فرانڪنسٽن“ ٺاهڻ ۾ مدد ڪنديون.
- پهريون توهان کي اجازت ڏئي ٿو "پيسٽ" هڪ متحرڪ لائبريري کي والدين نموني ۾.
- ٻيو داخل ٿيل متحرڪ لائبريري جي مطلوب طريقي کي ڪال ڪرڻ لاءِ انٽري پوائنٽ تي فنڪشن ڪوڊ کي ٻيهر لکڻو آهي.
اسان اسان جي "Frankenstein" کي بچايو، سيٽ وقفي پوائنٽ آن لائن ڊيڪرپٽ ٿيل وسيلن سان بفر کي واپس آڻيندي، ۽ پوئين اسٽيج سان قياس ڪندي ڊمپ ٺاهي.
ٻئي ڊپ ۾ لکيل آهي VB.NET هڪ قابل عمل فائل جيڪا اسان جي واقف محافظ طرفان محفوظ ڪئي وئي آهي ConfuserEx.
محافظ کي هٽائڻ کان پوء، اسان اڳ ۾ لکيل YARA ضابطن کي استعمال ڪندا آهيون ۽ پڪ ڪريو ته اڻ ڀريل مالويئر واقعي AgentTesla آهي.
نموني نمبر 2
ماخذ فائل هڪ MS Excel دستاويز آهي. هڪ ٺهيل ميڪرو بدسلوڪي ڪوڊ جي عمل جو سبب بڻائيندو آهي.
نتيجي طور، پاور شيل اسڪرپٽ شروع ڪئي وئي آهي.
اسڪرپٽ C# ڪوڊ کي رد ڪري ٿو ۽ ان تي ڪنٽرول منتقل ڪري ٿو. ڪوڊ پاڻ هڪ بوٽ لوڊر آهي، جيئن ته سينڊ باڪس رپورٽ مان پڻ ڏسي سگهجي ٿو.
پيل لوڊ هڪ قابل عمل آهي .NET- فائيل.
اندر فائل کولڻ dnSpy x86، توهان ڏسي سگهو ٿا ته اهو مبهم آهي. افاديت استعمال ڪندي اوچتو هٽائڻ de4dot ۽ تجزيو ڏانهن واپس وڃو.
جڏهن ڪوڊ جي جانچ ڪندي، توهان شايد هيٺيان فنڪشن ڳولي سگهو ٿا:
انڪوڊ ٿيل لائينون حيرت انگيز آھن داخلا پوائنٽ и دعوت ڏيو. اسان لڳايو وقفي پوائنٽ پهرين لڪير ڏانهن، هلائڻ ۽ محفوظ ڪريو بفر جي قيمت byte_0.
ڊمپ وري هڪ درخواست تي آهي .NET ۽ محفوظ ConfuserEx.
اسان استعمال ڪندي obfuscation کي هٽايو de4dot ۽ تي اپ لوڊ ڪريو dnSpy. فائل جي وضاحت مان اسان سمجھون ٿا ته اسان کي منهن ڏيڻو پوندو CyaX-Sharp لوڊر.
هي لوڊر وسيع مخالف تجزياتي ڪارڪردگي آهي.
ھن ڪارڪردگيءَ ۾ شامل آھي بلٽ ان ونڊوز تحفظ واري نظام کي پاس ڪرڻ، Windows Defender کي غير فعال ڪرڻ، ۽ گڏوگڏ سينڊ باڪس ۽ ورچوئل مشين جي چڪاس واري ميڪانيزم. اهو ممڪن آهي نيٽ ورڪ مان پيل لوڊ لوڊ ڪرڻ يا ان کي وسيلن جي حصي ۾ ذخيرو ڪرڻ. لانچ انجيڪشن ذريعي پنهنجي عمل ۾، پنهنجي عمل جي نقل ۾، يا عملن ۾ ڪيو ويندو آهي. MSBuild.exe, vbc.exe и RegSvcs.exe حملي ڪندڙ پاران چونڊيل پيٽرولر تي منحصر ڪري ٿو.
تنهن هوندي، اسان لاء اهي گهٽ اهم آهن AntiDump- فنڪشن جيڪو شامل ڪري ٿو ConfuserEx. ان جو سورس ڪوڊ ڳولي سگھجي ٿو هتي
تحفظ کي غير فعال ڪرڻ لاء، اسان موقعو استعمال ڪنداسين dnSpy، جيڪو توهان کي ترميم ڪرڻ جي اجازت ڏئي ٿو IL-ڪوڊ.
محفوظ ڪريو ۽ انسٽال ڪريو وقفي پوائنٽ پيل لوڊ ڊيڪرپشن فنڪشن کي ڪال ڪرڻ جي لائن ڏانهن. اهو مکيه طبقي جي تعمير ۾ واقع آهي.
اسان پيل لوڊ لانچ ۽ ڊمپ ڪريو. اڳ ۾ لکيل YARA ضابطن کي استعمال ڪندي، اسان پڪ ڪريون ٿا ته هي AgentTesla آهي.
نموني نمبر 3
ذريعو فائل قابل عمل آھي VB اصلي PE32- فائيل.
اينٽروپي تجزيي ڏيکاري ٿي انڪري ٿيل ڊيٽا جي وڏي ٽڪري جي موجودگي.
جڏهن تجزيو ڪيو درخواست فارم ۾ VB Decompiler توهان هڪ عجيب pixelated پس منظر محسوس ڪري سگهو ٿا.
انٽروپي گراف bmp-image اصل فائل جي اينٽراپي گراف سان هڪجهڙائي آهي، ۽ سائيز فائل جي سائيز جو 85٪ آهي.
تصوير جي عام ظهور اسٽيگنگرافي جي استعمال کي ظاهر ڪري ٿو.
اچو ته عمل جي وڻ جي ظاهر تي ڌيان ڏيو، انهي سان گڏ هڪ انجڻ مارڪر جي موجودگي.
اهو ظاهر ڪري ٿو ته پيڪنگ جاري آهي. Visual Basic loaders لاءِ (aka VBKrypt يا VBI انجيڪٽر) عام استعمال شيل ڪوڊ پيل لوڊ کي شروع ڪرڻ لاءِ، ان سان گڏ انجڻ پاڻ کي انجام ڏيڻ لاءِ.
۾ تجزيو VB Decompiler هڪ واقعي جي موجودگي ڏيکاري بار فارم تي FegatassocAirballoon2.
اچو ته وڃون IDA پرو مخصوص ايڊريس تي وڃو ۽ فنڪشن جو مطالعو ڪريو. ڪوڊ تمام گهڻي مبهم آهي. اهو ٽڪرو جيڪو اسان جي فائدي ۾ هيٺ ڏنل آهي.
هتي پروسيس جي ايڊريس اسپيس کي اسڪين ڪيو ويو آهي دستخط لاءِ. اهو طريقو انتهائي مشڪوڪ آهي.
پهريون، اسڪيننگ شروع ايڊريس 0x400100. هي قدر جامد آهي ۽ ترتيب نه ڏني وئي آهي جڏهن بنيادي منتقل ڪيو وڃي. مثالي گرين هاؤس جي حالتن ۾ ان جي پڇاڙي ظاهر ڪندو PE- executable فائل جو هيڊر. بهرحال، ڊيٽابيس جامد نه آهي، ان جي قيمت تبديل ٿي سگهي ٿي، ۽ گهربل دستخط جي حقيقي پتو ڳولڻ، جيتوڻيڪ اهو هڪ متغير اوور فلو سبب نه ٿيندو، تمام گهڻو وقت وٺي سگھي ٿو.
ٻيو، دستخط جي معني iWGK. منهنجو خيال آهي ته اهو واضح آهي ته 4 بائيٽ تمام ننڍڙو آهي انفراديت جي ضمانت ڏيڻ لاء. ۽ جيڪڏھن اوھان کي حساب ۾ وٺي پهرين نقطي، هڪ غلطي ڪرڻ جو امڪان تمام گهڻو آهي.
حقيقت ۾، گهربل ٽڪرا اڳ ۾ مليل جي آخر سان ڳنڍيل آهي bmp- تصويرن پاران آفسٽ 0xA1D0D.
ناڪام شيل ڪوڊ ٻن مرحلن ۾ ڪيو ويو. پهرين بنيادي جسم کي بيان ڪري ٿو. هن معاملي ۾، اهم طاقت جي ذريعي مقرر ڪيو ويندو آهي.
ڊريڪٽ ٿيل هڪ کي ڊمپ ڪريو شيل ڪوڊ ۽ لائنون ڏسو.
پهرين، اسان ڄاڻون ٿا ته ٻار جي عمل کي ٺاهڻ لاء فنڪشن: CreateProcessInternalW.
ٻيو، اسان سسٽم ۾ ٺهڪندڙ ميڪانيزم کان واقف ٿي چڪا آهيون.
اچو ته اصل عمل ڏانهن واپس وڃو. اچو ته وجھون وقفي پوائنٽ تي CreateProcessInternalW ۽ عمل جاري رکو. اڳيون اسان ڏسون ٿا ڪنيڪشن NtGetContextThread/NtSetContextThread، جيڪو عمل جي شروعاتي ايڊريس کي ايڊريس تي تبديل ڪري ٿو شيل ڪوڊ.
اسان ٺاهيل پروسيس کي ڊيبگر سان ڳنڍيندا آهيون ۽ واقعي کي چالو ڪندا آهيون لئبرري لوڊ / لوڊ ڪرڻ تي معطل، عمل کي ٻيهر شروع ڪريو ۽ لوڊ ٿيڻ جو انتظار ڪريو .NET- لائبريريون.
وڌيڪ استعمال ڪندي پروسيس هيڪر ڊمپ علائقن ۾ شامل آهن unpacked .NET- ايپليڪيشن.
اسان سڀني عملن کي روڪيون ٿا ۽ ميلويئر جي ڪاپي کي ختم ڪريون ٿا جيڪو سسٽم ۾ شامل ٿي چڪو آهي.
ڊمپ ٿيل فائل هڪ محافظ طرفان محفوظ آهي .NET ريڪٽر، جيڪو آساني سان استعمال ڪندي ختم ڪري سگھجي ٿو de4dot.
اڳ ۾ لکيل YARA ضابطن کي استعمال ڪندي، اسان پڪ ڪريون ٿا ته هي AgentTesla آهي.
جو اختصار ڏيو
تنهن ڪري، اسان تفصيل سان ڏيکاريو آهي نيم-خودڪار نموني کي پيڪنگ ڪرڻ جي عمل کي ٽن ميني-ڪيسز استعمال ڪندي مثال طور، ۽ پڻ تجزيو ڪيو مالويئر جي بنياد تي هڪ مڪمل ڪيس جي بنياد تي، اهو معلوم ڪيو ته مطالعي هيٺ نمونو AgentTesla آهي، ان جي ڪارڪردگي کي قائم ڪرڻ ۽ هڪ سمجھوتي جي اشارن جي مڪمل فهرست.
بدسلوڪي اعتراض جو تجزيو جيڪو اسان ڪيو آهي گهڻو وقت ۽ ڪوشش جي ضرورت آهي، ۽ اهو ڪم ڪمپني ۾ هڪ خاص ملازم طرفان ڪيو وڃي، پر سڀئي ڪمپنيون هڪ تجزيه نگار کي ملازمت ڏيڻ لاء تيار نه آهن.
گروپ-آئي بي ليبارٽري پاران مهيا ڪيل خدمتن مان هڪ ڪمپيوٽر فارنزڪس ۽ بدسلوڪي ڪوڊ تجزيو سائبر واقعن جو جواب آهي. ۽ انهي ڪري ته گراهڪ دستاويزن کي منظور ڪرڻ ۽ سائبر حملي جي وچ ۾ بحث ڪرڻ ۾ وقت ضايع نه ڪن، گروپ-آئي بي شروع ڪيو حادثي جو جواب ڏيڻ وارو, هڪ پري سبسڪرپشن واقعي جي جواب جي خدمت جنهن ۾ پڻ شامل آهي هڪ مالويئر تجزيو قدم. ان بابت وڌيڪ معلومات ملي سگهي ٿي
جيڪڏهن توهان هڪ ڀيرو ٻيهر مطالعو ڪرڻ چاهيو ٿا ته AgentTesla جا نمونا ڪيئن بيٺا آهن ۽ ڏسو ته ڪيئن هڪ CERT Group-IB ماهر اهو ڪري ٿو، توهان ڊائون لوڊ ڪري سگهو ٿا هن موضوع تي ويبنار رڪارڊنگ
جو ذريعو: www.habr.com