Излаз није успео: изложимо АгентТеслу чистој води. Део 3

Излаз није успео: изложимо АгентТеслу чистој води. Део 3

Овим чланком завршавамо серију публикација посвећених анализи злонамерног софтвера. ИН први део Спровели смо детаљну анализу заражене датотеке коју је европска компанија примила поштом и тамо открили шпијунски софтвер АгентТесла. Ин други део описао резултате корак по корак анализе главног модула АгентТесла.

Данас ће Иља Померанцев, специјалиста за анализу малвера у ЦЕРТ Гроуп-ИБ, говорити о првој фази анализе злонамерног софтвера – полуаутоматском распаковању узорака АгентТесла на примеру три мини случаја из праксе стручњака ЦЕРТ Гроуп-ИБ.

Типично, прва фаза у анализи малвера је уклањање заштите у облику пакера, криптора, заштитника или учитавача. У већини случајева, овај проблем се може решити покретањем малвера и извођењем думп-а, али постоје ситуације у којима овај метод није прикладан. На пример, ако је малвер енкриптор, ако штити своје меморијске регионе од бацања, ако код садржи механизме за откривање виртуелне машине или ако се малвер поново покреће одмах након покретања. У таквим случајевима користи се такозвано „полуаутоматско” распакивање, односно истраживач има потпуну контролу над процесом и може да интервенише у било ком тренутку. Хајде да размотримо ову процедуру користећи три узорка породице АгентТесла као пример. Ово је релативно безопасан злонамерни софтвер ако му онемогућите приступ мрежи.

Узорак бр.1

Изворна датотека је МС Ворд документ који искоришћава рањивост ЦВЕ-2017-11882.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Као резултат тога, корисни терет се преузима и покреће.

Анализа стабла процеса и маркера понашања показује убризгавање у процес РегАсм.еке.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Постоје маркери понашања карактеристични за АгентТесла.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Преузети узорак је извршни . НЕТ-фајл заштићен заштитником .НЕТ Реацтор.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Хајде да га отворимо у услужном програму днСпи к86 и пређите на улазну тачку.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Одласком на функцију ДатеТимеОффсет, наћи ћемо иницијализациони код за нови . НЕТ-модуле. Хајде да ставимо тачка прекида на линији која нас занима и покрените датотеку.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
У једном од враћених бафера можете видети МЗ потпис (0к4Д 0к5А). Сачувајмо га.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Избачена извршна датотека је динамичка библиотека која је учитавач, тј. издваја корисни терет из одељка ресурса и покреће га.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Истовремено, сами потребни ресурси нису присутни на депонији. Они су у узорку родитеља.

Корисност днСпи има две изузетно корисне функције које ће нам помоћи да брзо направимо „Франкенштајн“ од две повезане датотеке.

  1. Први вам омогућава да „налепите“ динамичку библиотеку у родитељски узорак.

    Излаз није успео: изложимо АгентТеслу чистој води. Део 3

  2. Други је да се поново напише код функције на улазној тачки да позове жељени метод уметнуте динамичке библиотеке.

    Излаз није успео: изложимо АгентТеслу чистој води. Део 3

Сачувамо наш "Франкенштајн", сет тачка прекида на линији која враћа бафер са дешифрованим ресурсима и произведе думп по аналогији са претходном фазом.

Други думп је уписан ВБ.НЕТ извршну датотеку која је заштићена нама познатим заштитником ЦонфусерЕк.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Након уклањања протектора, користимо ИАРА правила написана раније и уверавамо се да је распаковани малвер заиста АгентТесла.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3

Узорак бр.2

Изворна датотека је МС Екцел документ. Уграђени макро изазива извршавање злонамерног кода.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Као резултат, покреће се ПоверСхелл скрипта.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Скрипта дешифрује Ц# код и преноси контролу на њега. Сам код је боотлоадер, као што се такође може видети из извештаја сандбок-а.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Корисно оптерећење је извршна датотека . НЕТ-филе.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Отварање датотеке у днСпи к86, можете видети да је замагљено. Уклањање замагљивања помоћу услужног програма де4дот и вратимо се анализи.

Када испитујете код, можда ћете открити следећу функцију:

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Кодиране линије су упечатљиве Улазна тачка и призвати. Ставимо тачка прекида до првог реда, покрените и сачувајте вредност бафера бите_0.

Думп је поново апликација укључена . НЕТ и заштићена ЦонфусерЕк.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Уклањамо замагљивање помоћу де4дот и отпремите на днСпи. Из описа датотеке разумемо са чим смо суочени ЦиаКс-Схарп утоваривач.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Овај пуњач има широку анти-анализичку функционалност.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Ова функционалност укључује заобилажење уграђених Виндовс заштитних система, онемогућавање Виндовс Дефендер-а, као и механизама за откривање сандбок-а и виртуелних машина. Могуће је учитати корисни терет са мреже или га сачувати у одељку за ресурсе. Покретање се врши убризгавањем у сопствени процес, у дупликат сопственог процеса или у процесе МСБуилд.еке, вбц.еке и РегСвцс.еке у зависности од параметра који је одабрао нападач.

Међутим, за нас су они мање значајни од АнтиДумп-функција која додаје ЦонфусерЕк. Његов изворни код се може наћи на ГитХуб.

Да онемогућимо заштиту, искористићемо прилику днСпи, што вам омогућава да уређујете IL-kod.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Сачувајте и инсталирајте тачка прекида до линије позивања функције дешифровања корисног оптерећења. Налази се у конструктору главне класе.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Покрећемо и избацујемо терет. Користећи претходно написана ИАРА правила, уверавамо се да је ово АгентТесла.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3

Узорак бр.3

Изворна датотека је извршна ВБ Нативе ПЕ32-филе.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Ентропијска анализа показује присуство великог дела шифрованих података.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Приликом анализе пријавног формулара у ВБ Децомпилер можда ћете приметити чудну позадину са пикселима.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Ентропијски граф бмп-слика је идентична ентропијском графикону оригиналне датотеке, а величина је 85% величине датотеке.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Општи изглед слике указује на употребу стеганографије.

Обратимо пажњу на изглед стабла процеса, као и присуство маркера за убризгавање.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Ово указује да је распакивање у току. За Висуал Басиц учитаче (ака ВБКрипт или ВБИњецтор) типична употреба схеллцоде за иницијализацију корисног оптерећења, као и за обављање самог убризгавања.

Анализа у ВБ Децомпилер показао присуство догађаја Оптерећење на форму ФегатассоцАирбаллоон2.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Идемо у ИДА про на наведену адресу и проучите функцију. Код је јако замућен. Фрагмент који нас занима представљен је у наставку.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Овде се адресни простор процеса скенира за потпис. Овај приступ је крајње сумњив.

Прво, почетна адреса скенирања 0x400100. Ова вредност је статична и не подешава се када се база помера. У идеалним условима стакленика то ће указати на крај PE- заглавље извршне датотеке. Међутим, база података није статична, њена вредност може да се промени, а тражење праве адресе захтеваног потписа, иако неће изазвати преливање променљиве, може потрајати веома дуго.

Друго, значење потписа иВГК. Мислим да је очигледно да је 4 бајта премало да гарантује јединственост. А ако узмете у обзир прву тачку, вероватноћа да направите грешку је прилично велика.

У ствари, тражени фрагмент је причвршћен за крај претходно пронађеног бмп-слике по офсету 0кА1Д0Д.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Извршење Схеллцоде спроведена у две етапе. Први дешифрује главно тело. У овом случају, кључ се одређује грубом силом.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Избаците дешифровани Схеллцоде и погледај редове.

Прво, сада знамо функцију за креирање подређеног процеса: ЦреатеПроцессИнтерналВ.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Друго, постали смо свесни механизма фиксације у систему.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Вратимо се на првобитни процес. Хајде да ставимо тачка прекида на ЦреатеПроцессИнтерналВ и наставити са извршењем. Затим видимо везу НтГетЦонтектТхреад/НтСетЦонтектТхреад, који мења почетну адресу извршења у адресу СхеллЦоде.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Повезујемо се са креираним процесом помоћу дебагера и активирамо догађај Обуставите при учитавању/истовару библиотеке, наставите процес и сачекајте учитавање . НЕТ-библиотеке.

Даље коришћење ПроцессХацкер дамп региони који садрже распаковане . НЕТ-апликација.

Заустављамо све процесе и бришемо копију злонамерног софтвера који је уграђен у систем.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Избачена датотека је заштићена заштитником .НЕТ Реацтор, који се лако може уклонити помоћу услужног програма де4дот.

Излаз није успео: изложимо АгентТеслу чистој води. Део 3
Користећи ИАРА правила написана раније, уверавамо се да је ово АгентТесла.

da резимирамо

Дакле, детаљно смо демонстрирали процес полуаутоматског распакивања узорка користећи три мини случаја као пример, а такође смо анализирали малвер на основу пуноправног случаја, откривши да је узорак који се проучава АгентТесла, утврдивши његову функционалност и комплетна листа показатеља компромиса.

Анализа злонамерног објекта коју смо урадили захтева много времена и труда, а овај посао би требало да обавља специјални службеник у компанији, али нису све компаније спремне да запосле аналитичара.

Једна од услуга које пружа Група-ИБ Лабораторија за компјутерску форензику и анализу злонамерног кода је одговор на сајбер инциденте. А како купци не би губили време на одобравање докумената и дискусију о њима усред сајбер напада, Група-ИБ је покренула Ретаинер Респонсе Инцидент, услуга одговора на инциденте пре претплате која такође укључује корак анализе малвера. Више информација о овоме можете пронаћи овде.

Ако желите још једном да проучите како се АгентТесла узорци распакују и видите како то ради специјалиста ЦЕРТ Гроуп-ИБ, можете преузети снимак вебинара на ову тему овде.

Извор: ввв.хабр.цом

Додај коментар