Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім

Осы мақаламен біз зиянды бағдарламалық қамтамасыз етуді талдауға арналған жарияланымдар сериясын аяқтаймыз. IN Бірінші бөлім Біз еуропалық компания пошта арқылы алған вирус жұққан файлға егжей-тегжейлі талдау жасадық және сол жерден AgentTesla шпиондық бағдарламасын анықтадық. жылы екінші бөлім негізгі AgentTesla модулінің қадамдық талдау нәтижелерін сипаттады.

Бүгін CERT Group-IB зиянды бағдарламаларды талдау бойынша маманы Илья Померанцев зиянды бағдарламаны талдаудың бірінші кезеңі – CERT Group-IB мамандарының тәжірибесінен алынған үш мини-жағдай мысалында AgentTesla үлгілерін жартылай автоматты түрде ашу туралы әңгімелейді.

Әдетте, зиянды бағдарламаларды талдаудың бірінші кезеңі пакер, криптор, протектор немесе жүктеуші түріндегі қорғанысты жою болып табылады. Көп жағдайда бұл мәселені зиянды бағдарламаны іске қосу және демпингті орындау арқылы шешуге болады, бірақ бұл әдіс жарамсыз жағдайлар бар. Мысалы, егер зиянды бағдарлама шифрлаушы болса, ол жад аймақтарын демпингтен қорғаса, кодта виртуалды машинаны анықтау механизмдері болса немесе зиянды бағдарлама іске қосылғаннан кейін бірден қайта жүктелсе. Мұндай жағдайларда «жартылай автоматты» деп аталатын қаптаманы ашу қолданылады, яғни зерттеуші процесті толық басқарады және кез келген уақытта араласа алады. Мысал ретінде AgentTesla отбасының үш үлгісін пайдаланып, бұл процедураны қарастырайық. Бұл желіге кіру мүмкіндігін өшірсеңіз, салыстырмалы түрде зиянсыз зиянды бағдарлама.

Үлгі №1

Бастапқы файл CVE-2017-11882 осалдығын пайдаланатын MS Word құжаты болып табылады.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Нәтижесінде пайдалы жүктеме жүктеліп, іске қосылады.

Процесс ағашын және мінез-құлық маркерлерін талдау процеске енгізуді көрсетеді RegAsm.exe.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
AgentTesla-ға тән мінез-құлық маркерлері бар.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Жүктелген үлгі орындалатын үлгі болып табылады .NET-файл қорғаушымен қорғалған .NET реакторы.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Оны қызметтік бағдарламада ашайық dnSpy x86 және кіру нүктесіне өтіңіз.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Функцияға өту арқылы DateTimeOffset, біз жаңа үшін инициализация кодын табамыз .NET-модуль. қояйық Тоқтау нүктесі бізді қызықтыратын жолда файлды іске қосыңыз.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қайтарылған буферлердің бірінде сіз MZ қолтаңбасын көре аласыз (0x4D 0x5A). Сақтап алайық.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Демпингтік орындалатын файл - жүктеуші болып табылатын динамикалық кітапхана, яғни. ресурс бөлімінен пайдалы жүктемені шығарып, оны іске қосады.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Сонымен қатар, қажетті ресурстардың өзі үйіндіде жоқ. Олар ата-аналық үлгіде.

Утилита dnSpy Екі байланысты файлдан «Франкенштейнді» тез жасауға көмектесетін екі өте пайдалы функционалдығы бар.

  1. Біріншісі динамикалық кітапхананы негізгі үлгіге «қоюға» мүмкіндік береді.

    Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім

  2. Екіншісі - енгізілген динамикалық кітапхананың қажетті әдісін шақыру үшін кіру нүктесінде функция кодын қайта жазу.

    Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім

Біз «Франкенштейн» жинағын сақтаймыз Тоқтау нүктесі шифры шешілген ресурстары бар буферді қайтаратын жолда және алдыңғы кезеңге ұқсас демпті жасаңыз.

Екінші қоқыс жазылған VB.NET бізге таныс қорғаушымен қорғалған орындалатын файл ConfuserEx.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қорғаушыны алып тастағаннан кейін біз бұрын жазылған YARA ережелерін қолданамыз және қаптамадан шығарылған зиянды бағдарлама шынымен AgentTesla екеніне көз жеткіземіз.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім

Үлгі №2

Бастапқы файл MS Excel құжаты болып табылады. Кірістірілген макрос зиянды кодтың орындалуын тудырады.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Нәтижесінде PowerShell сценарийі іске қосылады.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Сценарий C# кодын ашады және оған басқаруды береді. Кодтың өзі жүктеуші болып табылады, оны құм жәшігінің есебінен де көруге болады.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Пайдалы жүктеме орындалатын файл болып табылады .NETфайл.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Файлды ашу dnSpy x86, сіз оның түсініксіз екенін көре аласыз. Утилитаны пайдаланып түсініксіздікті жою de4dot және талдауға оралу.

Кодты зерттеген кезде сіз келесі функцияны таба аласыз:

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Кодталған сызықтар таң қалдырады EntryPoint и Шақыру. қойдық Тоқтау нүктесі бірінші жолға іске қосыңыз және буфер мәнін сақтаңыз байт_0.

Қоқыс қайта қосулы .NET және қорғалған ConfuserEx.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Біз бұлыңғырлықты қолданамыз de4dot және жүктеп салыңыз dnSpy. Файл сипаттамасынан біз бетпе-бет келгенімізді түсінеміз CyaX-Sharp тиегіш.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Бұл жүктегіште талдауға қарсы кең функционалдылық бар.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Бұл функция кірістірілген Windows қорғау жүйелерін айналып өтуді, Windows Defender бағдарламасын өшіруді, сондай-ақ құм жәшігін және виртуалды машинаны анықтау механизмдерін қамтиды. Пайдалы жүктемені желіден жүктеуге немесе оны ресурс бөлімінде сақтауға болады. Іске қосу өз процесіне, өз процесінің телнұсқасына немесе процестерге енгізу арқылы орындалады. MSBuild.exe, vbc.exe и RegSvcs.exe шабуылдаушы таңдаған параметрге байланысты.

Дегенмен, біз үшін олардың маңыздылығы азырақ Дампқа қарсы-қосатын функция ConfuserEx. Оның бастапқы кодын мына жерден табуға болады GitHub.

Қорғауды өшіру үшін біз мүмкіндікті пайдаланамыз dnSpy, ол өңдеуге мүмкіндік береді IL-код.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Сақтау және орнату Тоқтау нүктесі пайдалы жүктеменің шифрын шешу функциясын шақыру жолына. Ол негізгі сыныптың конструкторында орналасқан.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Біз пайдалы жүкті іске қосып, төгеміз. Бұрын жазылған YARA ережелерін пайдалана отырып, бұл AgentTesla екеніне көз жеткіземіз.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім

Үлгі №3

Бастапқы файл орындалатын файл болып табылады VB Native PE32файл.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Энтропиялық талдау шифрланған деректердің үлкен бөлігінің болуын көрсетеді.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Өтініш формасын талдау кезінде VB декомпиляторы Сіз біртүрлі пиксельді фон байқай аласыз.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Энтропия графигі bmp-сурет бастапқы файлдың энтропия графигімен бірдей және өлшемі файл өлшемінен 85% құрайды.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Кескіннің жалпы көрінісі стеганографияны қолдануды көрсетеді.

Технологиялық ағаштың сыртқы түріне, сондай-ақ инъекциялық маркердің болуына назар аударайық.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Бұл қаптаманы ашу жүріп жатқанын көрсетеді. Visual Basic жүктеушілері үшін (aka VBKrypt немесе VBInjector) типтік қолдану қабық коды пайдалы жүктемені инициализациялау, сондай-ақ инъекцияның өзін орындау үшін.

талдау VB декомпиляторы оқиғаның бар екенін көрсетті жүк пішінде FegatassocAirballoon2.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
барайық IDA про көрсетілген мекенжайға өтіп, функцияны зерттеңіз. Код қатты түсініксіз. Бізді қызықтыратын фрагмент төменде берілген.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Мұнда процестің мекенжай кеңістігі қолтаңба үшін сканерленеді. Бұл тәсіл өте күмәнді.

Біріншіден, сканерлеуді бастау мекенжайы 0x400100. Бұл мән статикалық болып табылады және негізді жылжытқанда реттелмейді. Идеалды жылыжай жағдайында ол аяқталуын көрсетеді PE-орындалатын файлдың тақырыбы. Дегенмен, деректер базасы статикалық емес, оның мәні өзгеруі мүмкін және қажетті қолтаңбаның нақты мекенжайын іздеу, айнымалылардың толып кетуін тудырмаса да, өте ұзақ уақыт алуы мүмкін.

Екіншіден, қолтаңбаның мағынасы iWGK. Менің ойымша, бірегейлікке кепілдік беру үшін 4 байт тым аз екені анық. Ал егер сіз бірінші тармақты ескерсеңіз, қателесу ықтималдығы айтарлықтай жоғары.

Шындығында, қажетті фрагмент бұрын табылғанның соңына бекітіледі bmp- офсет бойынша суреттер 0xA1D0D.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Орындау Shellcode екі кезеңде жүзеге асырылады. Біріншісі негізгі денені шешеді. Бұл жағдайда кілт дөрекі күшпен анықталады.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Шифры шешілгенді тастаңыз Shellcode және сызықтарға қараңыз.

Біріншіден, біз енді еншілес процесті жасау функциясын білеміз: CreateProcessInternalW.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Екіншіден, біз жүйедегі бекіту механизмін білдік.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Бастапқы процеске оралайық. қояйық Тоқтау нүктесі туралы CreateProcessInternalW және орындауды жалғастырыңыз. Әрі қарай біз байланысты көреміз NtGetContextThread/NtSetContextThread, ол орындауды бастау мекенжайын мекенжайға өзгертеді ShellCode.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Біз жасалған процеске отладчикпен қосылып, оқиғаны белсендіреміз Кітапхананы жүктеу/түсіруді тоқтата тұру, процесті жалғастырып, жүктеуді күтіңіз .NET- кітапханалар.

Әрі қарай пайдалану ProcessHacker қапталмаған қоқыс аймақтары .NET-қолдану.

Біз барлық процестерді тоқтатамыз және жүйеге енгізілген зиянды бағдарламаның көшірмесін жоямыз.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Демпингтік файл қорғаушымен қорғалған .NET реакторы, оны қызметтік бағдарлама арқылы оңай жоюға болады de4dot.

Қатысу сәтсіз аяқталды: AgentTesla-ны таза суға жіберейік. 3-бөлім
Бұрын жазылған YARA ережелерін қолдана отырып, біз бұл AgentTesla екеніне көз жеткіземіз.

Қорытындылайық

Осылайша, біз мысал ретінде үш шағын жағдайды пайдаланып үлгіні жартылай автоматты түрде ашу процесін егжей-тегжейлі көрсеттік, сонымен қатар толыққанды жағдайға негізделген зиянды бағдарламаны талдадық, зерттелетін үлгі AgentTesla екенін анықтап, оның функционалдығын және ымыраға келу көрсеткіштерінің толық тізімі.

Біз жүргізген зиянды нысанды талдау көп уақыт пен күш-жігерді қажет етеді және бұл жұмысты компаниядағы арнайы қызметкер орындауы керек, бірақ барлық компаниялар аналитикті жұмысқа алуға дайын емес.

Group-IB компьютерлік сот сараптамасы және зиянды кодты талдау зертханасы ұсынатын қызметтердің бірі кибер инциденттерге жауап беру болып табылады. Клиенттер құжаттарды мақұлдауға және оларды кибершабуыл кезінде талқылауға уақыт жоғалтпау үшін Group-IB іске қосты. Оқиғаға жауап беру құралы, зиянды бағдарламаны талдау қадамын қамтитын жазылым алдындағы оқиғаға жауап беру қызметі. Бұл туралы қосымша ақпаратты табуға болады осында.

Егер сіз AgentTesla үлгілерінің қалай ашылатынын тағы бір рет зерттеп, CERT Group-IB маманының мұны қалай жасайтынын көргіңіз келсе, осы тақырып бойынша вебинар жазбасын жүктеп алуға болады. осында.

Ақпарат көзі: www.habr.com

пікір қалдыру