A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész

Ezzel a cikkel kiegészítjük a rosszindulatú szoftverek elemzésével foglalkozó kiadványsorozatot. BAN BEN az első rész Részletes elemzést végeztünk egy fertőzött fájlról, amelyet egy európai cég kapott postán, és AgentTesla spyware-t fedeztünk fel benne. Ban ben második rész ismertette a fő AgentTesla modul lépésről lépésre végzett elemzésének eredményeit.

Ma Ilya Pomerantsev, a CERT Group-IB rosszindulatú programok elemzésének szakértője a kártevő-elemzés első szakaszáról beszél - az AgentTesla minták félautomata kicsomagolásáról, a CERT Group-IB szakembereinek gyakorlatából származó három mini-eset példáján keresztül.

Jellemzően a rosszindulatú programok elemzésének első szakasza a védelem eltávolítása csomagoló, titkosító, védő vagy betöltő formájában. A legtöbb esetben ez a probléma megoldható a rosszindulatú program futtatásával és a dump végrehajtásával, de vannak helyzetek, amikor ez a módszer nem megfelelő. Például, ha a rosszindulatú program egy titkosító, ha megvédi memóriarégióit a kiürítéstől, ha a kód virtuálisgép-észlelő mechanizmusokat tartalmaz, vagy ha a rosszindulatú program az indítás után azonnal újraindul. Ilyenkor úgynevezett „félautomata” kicsomagolást alkalmaznak, vagyis a kutató teljes mértékben irányítja a folyamatot, és bármikor beavatkozhat. Tekintsük ezt az eljárást az AgentTesla család három mintájával példaként. Ez egy viszonylag ártalmatlan rosszindulatú program, ha letiltja a hálózati hozzáférést.

1. számú minta

A forrásfájl egy MS Word dokumentum, amely kihasználja a CVE-2017-11882 biztonsági rést.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Ennek eredményeként a hasznos teher letöltődik és elindul.

A folyamatfa és a viselkedési markerek elemzése a folyamatba való behatolást mutatja RegAsm.exe.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Vannak az AgentTeslára jellemző viselkedési markerek.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A letöltött minta a végrehajtható . NET-védővel védett fájl .NET Reactor.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Nyissuk meg a segédprogramban dnSpy x86 és menjen tovább a belépési ponthoz.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A funkcióra lépve DateTimeOffset, megtaláljuk az új inicializálási kódját . NET-modul. Tegyük fel töréspont azon a vonalon, amelyik érdekel, és futtassa a fájlt.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Az egyik visszaadott pufferben láthatod az MZ aláírást (0x4D 0x5A). Mentsük el.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A kiírt futtatható fájl egy dinamikus könyvtár, amely betöltő, azaz. kivonja a hasznos terhet az erőforrás részből, és elindítja azt.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Ugyanakkor maguk a szükséges erőforrások nincsenek jelen a szeméttárolóban. A szülőmintában szerepelnek.

Hasznosság dnSpy két rendkívül hasznos funkcióval rendelkezik, amelyek segítségével meglehetősen gyorsan létrehozhatunk egy „Frankensteint” két kapcsolódó fájlból.

  1. Az első lehetővé teszi egy dinamikus könyvtár „beillesztését” a szülőmintába.

    A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész

  2. A második a funkciókód átírása a belépési pontnál a beillesztett dinamikus könyvtár kívánt metódusának meghívásához.

    A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész

Mentjük a „Frankenstein” készletünket töréspont a sorban visszaad egy puffert dekódolt erőforrásokkal, és az előző szakasz analógiájával kiíratást készít.

A második dump be van írva VB.NET futtatható fájl, amelyet egy számunkra ismert védő véd ConfuserEx.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A védő eltávolítása után a korábban megírt YARA szabályokat használjuk, és megbizonyosodunk arról, hogy a kicsomagolt kártevő valóban AgentTesla.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész

2. számú minta

A forrásfájl egy MS Excel dokumentum. A beépített makró rosszindulatú kód futtatását okozza.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Ennek eredményeként elindul a PowerShell-szkript.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A szkript visszafejti a C# kódot, és átadja neki a vezérlést. Maga a kód egy rendszerbetöltő, amint az a sandbox jelentésből is látható.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A hasznos adat végrehajtható . NET- fájl.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A fájl megnyitása in dnSpy x86, láthatja, hogy el van homályosítva. A zavarás eltávolítása a segédprogram segítségével de4dot és térjünk vissza az elemzéshez.

A kód vizsgálatakor a következő funkciót fedezheti fel:

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A kódolt sorok feltűnőek Belépési pont и Indítsunk. Rakjuk töréspont az első sorba, futtassa és mentse el a pufferértéket bájt_0.

A dump ismét egy alkalmazás . NET és védett ConfuserEx.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Eltávolítjuk a zavarást a használatával de4dot és feltölteni ide dnSpy. A fájlleírásból megértjük, hogy ezzel szembesülünk CyaX-Sharp rakodó.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Ez a betöltő kiterjedt anti-analízis funkcióval rendelkezik.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Ez a funkció magában foglalja a beépített Windows védelmi rendszerek megkerülését, a Windows Defender letiltását, valamint a sandbox és a virtuális gép észlelési mechanizmusait. Lehetőség van a hasznos teher betöltésére a hálózatról vagy az erőforrás szekcióban történő tárolására. Az indítás a saját folyamatába, saját folyamatának másolatába vagy folyamatokba történő befecskendezéssel történik MSBuild.exe, vbc.exe и RegSvcs.exe a támadó által választott paramétertől függően.

Számunkra azonban kevésbé jelentősek, mint AntiDump-függvény, amely hozzáteszi ConfuserEx. Forráskódja a címen található GitHub.

A védelem kikapcsolásához élni fogunk a lehetőséggel dnSpy, amely lehetővé teszi a szerkesztést IL-kód.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Mentse és telepítse töréspont a hasznos terhelés visszafejtési funkcióját hívó vonalra. A főosztály konstruktorában található.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Indítjuk és kidobjuk a rakományt. A korábban megírt YARA szabályokat használva megbizonyosodunk arról, hogy ez az AgentTesla.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész

3. számú minta

A forrásfájl a végrehajtható fájl VB Natív PE32- fájl.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Az entrópiaanalízis nagyszámú titkosított adat jelenlétét mutatja.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A jelentkezési lap elemzésekor VB Decompiler furcsa pixeles hátteret vehet észre.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Entrópia grafikon bmp-image megegyezik az eredeti fájl entrópiagráfjával, és a mérete a fájl méretének 85%-a.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A kép általános megjelenése a szteganográfia alkalmazását jelzi.

Ügyeljünk a folyamatfa megjelenésére, valamint az injekciós marker jelenlétére.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Ez azt jelzi, hogy a kicsomagolás folyamatban van. Visual Basic betöltőkhöz (más néven VBKrypt vagy VBIinjektor) tipikus használat shellcode a hasznos teher inicializálásához, valamint magának az injekciónak a végrehajtásához.

Elemzés in VB Decompiler esemény jelenlétét mutatta Terhelés az űrlapon FegatassocAirballoon2.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Menjünk-hoz IDA pro a megadott címre, és tanulmányozza a funkciót. A kód erősen homályos. A minket érdeklő töredéket az alábbiakban mutatjuk be.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Itt a folyamat címterét szkenneljük aláírásért. Ez a megközelítés rendkívül kétséges.

Először is a szkennelés kezdőcíme 0x400100. Ez az érték statikus, és az alap eltolásakor nem változik. Ideális üvegházi körülmények között a végét jelzi PE-a végrehajtható fájl fejléce. Az adatbázis azonban nem statikus, értéke változhat, és a szükséges aláírás valós címének keresése, bár nem okoz változó túlcsordulást, nagyon sokáig tarthat.

Másodszor, az aláírás jelentése iWGK. Szerintem nyilvánvaló, hogy a 4 bájt kevés az egyediség garantálásához. És ha figyelembe vesszük az első pontot, akkor a hiba valószínűsége meglehetősen magas.

Valójában a szükséges töredék a korábban talált végéhez van rögzítve bmp-képek eltolás szerint 0xA1D0D.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
végrehajtás Shellcode két szakaszban hajtják végre. Az első megfejti a fő törzset. Ebben az esetben a kulcsot nyers erő határozza meg.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Dobja ki a visszafejtettet Shellcode és nézd meg a vonalakat.

Először is ismerjük a gyermekfolyamat létrehozásának függvényét: CreateProcessInternalW.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Másodszor, tudomást szereztünk a rendszerben való rögzítés mechanizmusáról.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Térjünk vissza az eredeti folyamathoz. Tegyük fel töréspont on CreateProcessInternalW és folytassa a végrehajtást. Ezután látjuk az összefüggést NtGetContextThread/NtSetContextThread, amely megváltoztatja a végrehajtás kezdőcímét a címre ShellCode.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
Hibakeresővel csatlakozunk a létrehozott folyamathoz és aktiváljuk az eseményt Felfüggesztés a könyvtár be-/kitöltéskor, folytassa a folyamatot, és várja meg a betöltést . NET- könyvtárak.

További felhasználás ProcessHacker kicsomagolást tartalmazó dump régiók . NET-Alkalmazás.

Leállítunk minden folyamatot, és töröljük a rosszindulatú program másolatát, amely beágyazódott a rendszerbe.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A kiírt fájlt védő védi .NET Reactor, amely egy segédprogram segítségével könnyen eltávolítható de4dot.

A részvétel sikertelen: tegyük ki az AgentTeslát tiszta víznek. 3. rész
A korábban írt YARA szabályokat használva megbizonyosodunk arról, hogy ez az AgentTesla.

Összefoglalva

Így részletesen bemutattuk a félautomata mintakicsomagolás folyamatát, példaként három mini tok segítségével, valamint egy teljes értékű eset alapján elemeztük a rosszindulatú programokat is, megállapítva, hogy a vizsgált minta az AgentTesla, megállapítva annak funkcionalitását és a kompromisszum mutatóinak teljes listája.

A rosszindulatú objektum általunk elvégzett elemzése sok időt és erőfeszítést igényel, és ezt a munkát a cég speciális munkatársának kell elvégeznie, de nem minden cég áll készen arra, hogy elemzőt alkalmazzon.

Az IB Csoport Számítógépes Forensics és Rosszindulatú kódok Elemző Laboratóriumának egyik szolgáltatása a kiberincidensekre való reagálás. És hogy az ügyfelek ne vesztegessék az idejüket dokumentumok jóváhagyására és megvitatására egy kibertámadás közepette, a Group-IB elindította Eseményreagáló adatrögzítő, egy előfizetéses incidensreagáló szolgáltatás, amely egy rosszindulatú programelemzési lépést is tartalmaz. Erről további információ található itt.

Ha szeretné még egyszer tanulmányozni az AgentTesla minták kicsomagolását, és megnézni, hogyan csinálja ezt egy CERT Group-IB szakember, letöltheti a webinárium felvételét ebben a témában itt.

Forrás: will.com

Hozzászólás