ProHoster > blog > Utawala > RATKing: kampeni mpya na Trojans za ufikiaji wa mbali
RATKing: kampeni mpya na Trojans za ufikiaji wa mbali
Mwishoni mwa Mei, tuligundua kampeni ya kusambaza programu hasidi ya Remote Access Trojan (RAT) ambayo huruhusu wavamizi kudhibiti mfumo ulioambukizwa wakiwa mbali.
Kundi tulilochunguza lilitofautishwa na ukweli kwamba halikuchagua familia yoyote maalum ya RAT kwa maambukizi. Trojans kadhaa walionekana katika mashambulizi ndani ya kampeni (ambayo yote yalipatikana kwa wingi). Kwa kipengele hiki, kikundi kilitukumbusha mfalme wa panya - mnyama wa hadithi ambayo ina panya na mikia iliyounganishwa.
Ya asili imechukuliwa kutoka kwa monograph na K. N. Rossikov "Panya na panya-kama panya, muhimu zaidi kiuchumi" (1908)
Kwa heshima ya kiumbe huyu, tuliita kikundi tunachozingatia RATKing. Katika chapisho hili, tutaelezea kwa undani jinsi washambuliaji walivyofanya shambulio hilo, ni zana zipi walizotumia, na pia kushiriki mawazo yetu juu ya maelezo ya kampeni hii.
Maendeleo ya shambulio hilo
Mashambulizi yote katika kampeni hii yalifanyika kulingana na algorithm ifuatayo:
Mtumiaji alipokea barua pepe ya kuhadaa ili kupata maelezo ya kibinafsi yenye kiungo cha Hifadhi ya Google.
Kwa kutumia kiungo, mwathiriwa alipakua hati mbaya ya VBS ambayo ilibainisha maktaba ya DLL ili kupakia upakiaji wa mwisho kwenye sajili ya Windows na kuzindua PowerShell ili kuitekeleza.
Maktaba ya DLL iliingiza malipo ya mwisho - kwa kweli, mojawapo ya RAT zinazotumiwa na washambuliaji - kwenye mchakato wa mfumo na kusajili hati ya VBS katika autorun ili kupata nafasi katika mashine iliyoambukizwa.
Upakiaji wa mwisho ulitekelezwa katika mchakato wa mfumo na kumpa mshambuliaji uwezo wa kudhibiti kompyuta iliyoambukizwa.
Kwa utaratibu inaweza kuwakilishwa kama hii:
Ifuatayo, tutazingatia hatua tatu za kwanza, kwa kuwa tunavutiwa na utaratibu wa utoaji wa zisizo. Hatutaelezea kwa undani utaratibu wa uendeshaji wa programu hasidi yenyewe. Zinapatikana kwa wingi - ama zinauzwa kwenye vikao maalum, au hata kusambazwa kama miradi huria - na kwa hivyo si za kipekee kwa kikundi cha RATKing.
Uchambuzi wa hatua za mashambulizi
Hatua ya 1. Barua pepe ya ulaghai
Shambulio hilo lilianza kwa mwathiriwa kupokea barua mbaya (washambuliaji walitumia violezo tofauti vyenye maandishi; picha ya skrini iliyo hapa chini inaonyesha mfano mmoja). Ujumbe ulikuwa na kiungo cha hazina halali drive.google.com, ambayo inadaiwa ilisababisha ukurasa wa upakuaji wa hati ya PDF.
Mfano wa barua pepe ya ulaghai
Walakini, kwa kweli, haikuwa hati ya PDF iliyopakiwa kabisa, lakini hati ya VBS.
Ulipobofya kiungo kutoka kwa barua pepe kwenye picha ya skrini hapo juu, faili iliyopewa jina Cargo Flight Details.vbs. Katika kesi hii, washambuliaji hawakujaribu hata kuficha faili kama hati halali.
Wakati huo huo, kama sehemu ya kampeni hii, tuligundua hati inayoitwa Cargo Trip Detail.pdf.vbs. Inaweza tayari kupita kwa PDF halali kwa sababu Windows huficha viendelezi vya faili kwa chaguo-msingi. Kweli, katika kesi hii, mashaka bado yanaweza kuamshwa na ikoni yake, ambayo inalingana na hati ya VBS.
Katika hatua hii, mhasiriwa anaweza kutambua udanganyifu: angalia tu faili zilizopakuliwa kwa sekunde moja. Hata hivyo, katika kampeni kama hizi za kuhadaa ili kupata maelezo ya kibinafsi, wavamizi mara nyingi hutegemea mtumiaji asiye makini au anayefanya haraka.
Hatua ya 2. Uendeshaji wa hati ya VBS
Hati ya VBS, ambayo mtumiaji angeweza kuifungua bila kukusudia, ilisajili maktaba ya DLL kwenye sajili ya Windows. Hati hiyo ilifichwa: mistari ndani yake iliandikwa kama baiti ikitenganishwa na herufi kiholela.
Mfano wa hati iliyofichwa
Algorithm ya kufumbua ni rahisi sana: kila herufi ya tatu haikujumuishwa kwenye mfuatano uliofichwa, baada ya hapo tokeo likatolewa msimbo kutoka base16 hadi kwenye mfuatano wa asili. Kwa mfano, kutoka kwa thamani 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (iliyoangaziwa kwenye picha ya skrini hapo juu) mstari uliosababisha ulikuwa WScript.Shell.
Ili kurahisisha kamba, tulitumia kazi ya Python:
def decode_str(data_enc):
return binascii.unhexlify(''.join([data_enc[i:i+2] for i in range(0, len(data_enc), 3)]))
Hapo chini, kwenye mstari wa 9-10, tunaangazia thamani ambayo kurahisishwa kwake kulisababisha faili ya DLL. Ni yeye ambaye alizinduliwa katika hatua inayofuata kwa kutumia PowerShell.
Kamba iliyo na DLL iliyofichwa
Kila chaguo la kukokotoa katika hati ya VBS ilitekelezwa kwani mifuatano ilifanywa kuwa rahisi kueleweka.
Baada ya kuendesha hati, kazi iliitwa wscript.sleep - ilitumika kutekeleza utekelezaji ulioahirishwa.
Ifuatayo, hati ilifanya kazi na Usajili wa Windows. Alitumia teknolojia ya WMI kwa hili. Kwa msaada wake, ufunguo wa pekee uliundwa, na mwili wa faili inayoweza kutekelezwa iliandikwa kwa parameter yake. Usajili ulipatikana kupitia WMI kwa kutumia amri ifuatayo:
Katika hatua ya tatu, DLL hasidi ilipakia upakiaji wa mwisho, ikaingiza kwenye mchakato wa mfumo, na kuhakikisha kuwa hati ya VBS inajianzisha kiotomatiki mtumiaji alipoingia.
Endesha kupitia PowerShell
DLL ilitekelezwa kwa kutumia amri ifuatayo katika PowerShell:
ilipokea data ya thamani ya usajili yenye jina rnd_value_name - data hii ilikuwa faili ya DLL iliyoandikwa kwenye jukwaa la .Net;
ilipakia moduli iliyotokana ya .Net kwenye kumbukumbu ya mchakato powershell.exe kutumia kipengele [System.Threading.Thread]::GetDomain().Load()(maelezo ya kina ya kazi ya Load() inapatikana kwenye tovuti ya Microsoft);
ilifanya kazi GUyyvmzVhebFCw]::EhwwK() - utekelezaji wa maktaba ya DLL ilianza nayo - na vigezo vbsScriptPath, xorKey, vbsScriptName. Kigezo xorKey ilihifadhi ufunguo wa kusimbua upakiaji wa mwisho, na vigezo vbsScriptPath и vbsScriptName zilihamishwa ili kusajili hati ya VBS katika autorun.
Maelezo ya maktaba ya DLL
Katika fomu iliyoharibika, bootloader ilionekana kama hii:
Kipakiaji katika fomu iliyoharibika (kazi ambayo utekelezaji wa maktaba ya DLL ilianza imesisitizwa kwa nyekundu)
Kipakiaji kianzishaji kinalindwa na mlinzi wa .Net Reactor. Huduma ya de4dot hufanya kazi nzuri ya kuondoa mlinzi huyu.
Kipakiaji hiki:
iliingiza mzigo kwenye mchakato wa mfumo (katika mfano huu svchost.exe);
Niliongeza hati ya VBS kwa autorun.
Sindano ya malipo
Wacha tuangalie kazi ambayo hati ya PowerShell iliita.
Kazi inayoitwa na hati ya PowerShell
Kitendaji hiki kilifanya vitendo vifuatavyo:
futa seti mbili za data (array и array2 kwenye picha ya skrini). Hapo awali zilibanwa kwa kutumia gzip na kusimbwa kwa algorithm ya XOR kwa ufunguo xorKey;
kunakili data kwa maeneo ya kumbukumbu yaliyotengwa. Data kutoka array - kwa eneo la kumbukumbu lililoelekezwa intPtr (payload pointer kwenye skrini); data kutoka array2 - kwa eneo la kumbukumbu lililoelekezwa intPtr2 (shellcode pointer kwenye skrini);
inayoitwa kazi CallWindowProcA(maelezo Kitendaji hiki kinapatikana kwenye tovuti ya Microsoft) na vigezo vifuatavyo (majina ya vigezo yameorodheshwa hapa chini, kwenye picha ya skrini ziko kwa mpangilio sawa, lakini kwa maadili ya kufanya kazi):
lpPrevWndFunc - pointer kwa data kutoka array2;
hWnd - pointer kwa kamba iliyo na njia ya faili inayoweza kutekelezwa svchost.exe;
Msg - pointer kwa data kutoka array;
wParam, lParam - vigezo vya ujumbe (katika kesi hii, vigezo hivi havikutumiwa na vilikuwa na maadili ya 0);
imeunda faili %AppData%MicrosoftWindowsStart MenuProgramsStartup<name>.urlAmbapo <name> - hizi ni wahusika 4 wa kwanza wa parameter vbsScriptName (kwenye picha ya skrini, kipande cha msimbo na hatua hii huanza na amri File.Copy) Kwa njia hii, programu hasidi iliongeza faili ya URL kwenye orodha ya faili za autorun wakati mtumiaji ameingia na hivyo akaunganishwa kwenye kompyuta iliyoambukizwa. Faili ya URL ilikuwa na kiungo cha hati:
Ili kuelewa jinsi sindano ilitekelezwa, tulisimbua safu za data array и array2. Ili kufanya hivyo tulitumia kazi ifuatayo ya Python:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
Kama matokeo, tuligundua kuwa:
array ilikuwa faili ya PE - hii ni malipo ya mwisho;
array2 ilikuwa shellcode inayohitajika kutekeleza sindano.
Shellcode kutoka kwa safu array2 imepitishwa kama thamani ya chaguo la kukokotoa lpPrevWndFunc katika utendaji CallWindowProcA. lpPrevWndFunc - kazi ya kurudi nyuma, mfano wake unaonekana kama hii:
Kwa hivyo unapoendesha kazi CallWindowProcA na vigezo hWnd, Msg, wParam, lParam shellcode kutoka kwa safu inatekelezwa array2 pamoja na hoja hWnd и Msg. hWnd ni kielekezi kwa kamba iliyo na njia ya faili inayoweza kutekelezwa svchost.exeNa Msg - pointer kwa mzigo wa mwisho.
Msimbo wa shell ulipokea anwani za kazi kutoka kernel32.dll и ntdll32.dll kulingana na thamani za hashi kutoka kwa majina yao na kuingiza malipo ya mwisho kwenye kumbukumbu ya mchakato svchost.exekwa kutumia mbinu ya Uchimbaji wa Mchakato (unaweza kusoma zaidi juu yake katika hii Ibara ya) Wakati wa kuingiza shellcode:
iliunda mchakato svchost.exe katika hali iliyosimamishwa kwa kutumia chaguo la kukokotoa CreateProcessW;
kisha ufiche onyesho la sehemu hiyo katika nafasi ya anwani ya mchakato svchost.exe kutumia kipengele NtUnmapViewOfSection. Kwa hivyo, programu iliachilia kumbukumbu ya mchakato wa asili svchost.exekisha kutenga kumbukumbu kwa upakiaji kwenye anwani hii;
kumbukumbu iliyotengwa kwa ajili ya upakiaji katika nafasi ya anwani ya mchakato svchost.exe kutumia kipengele VirtualAllocEx;
Kuanza kwa mchakato wa sindano
aliandika yaliyomo kwenye mzigo kwenye nafasi ya anwani ya mchakato svchost.exe kutumia kipengele WriteProcessMemory (kama kwenye skrini hapa chini);
ilianza mchakato svchost.exe kutumia kipengele ResumeThread.
Kukamilisha mchakato wa sindano
Programu hasidi inayoweza kupakuliwa
Kama matokeo ya vitendo vilivyoelezewa, moja ya programu hasidi za darasa la RAT iliwekwa kwenye mfumo ulioambukizwa. Jedwali lililo hapa chini linaorodhesha programu hasidi iliyotumiwa katika shambulio hilo, ambayo tunaweza kuhusisha kwa ujasiri kundi moja la washambuliaji, kwa kuwa sampuli zilifikia amri na seva ya udhibiti sawa.
Mifano ya programu hasidi iliyosambazwa na seva ya udhibiti sawa
Mambo mawili yanastahili kuzingatiwa hapa.
Kwanza, ukweli kwamba washambuliaji walitumia familia kadhaa tofauti za RAT mara moja. Tabia hii si ya kawaida kwa vikundi vya mtandao vinavyojulikana, ambavyo mara nyingi hutumia takriban seti sawa ya zana ambazo wanazozifahamu.
Pili, RATKing ilitumia programu hasidi ambayo inauzwa kwenye vikao maalum kwa bei ya chini, au hata ni mradi wa chanzo huria.
Orodha kamili zaidi ya programu hasidi inayotumika katika kampeni—pamoja na tahadhari moja muhimu—inatolewa mwishoni mwa makala.
Kuhusu kikundi
Hatuwezi kuhusisha kampeni hasidi iliyoelezewa na wavamizi wowote wanaojulikana. Kwa sasa, tunaamini kwamba mashambulizi haya yalifanywa na kikundi kipya kimsingi. Kama tulivyoandika hapo mwanzo, tuliiita RATKing.
Ili kuunda hati ya VBS, kikundi labda kilitumia zana inayofanana na matumizi VBS-Crypter kutoka kwa msanidi NYAN-x-CAT. Hii inaonyeshwa kwa kufanana kwa hati ambayo programu hii inaunda na hati ya washambuliaji. Hasa, wote wawili:
fanya utekelezaji uliocheleweshwa kwa kutumia chaguo la kukokotoa Sleep;
tumia WMI;
sajili mwili wa faili inayoweza kutekelezwa kama kigezo cha ufunguo wa usajili;
tekeleza faili hii kwa kutumia PowerShell katika nafasi yake ya anwani.
Kwa uwazi, linganisha amri ya PowerShell ili kuendesha faili kutoka kwa sajili, ambayo hutumiwa na hati iliyoundwa kwa kutumia VBS-Crypter:
Kumbuka kuwa wavamizi walitumia shirika lingine kutoka NYAN-x-CAT kama moja ya malipo - LimeRAT.
Anwani za seva za C&C zinaonyesha kipengele kingine bainifu cha RATKing: kikundi kinapendelea huduma zinazobadilika za DNS (angalia orodha ya C&C kwenye jedwali la IoC).
IoC
Jedwali hapa chini linatoa orodha kamili ya hati za VBS ambazo zinaweza kuhusishwa na kampeni iliyofafanuliwa. Maandishi haya yote yanafanana na hufanya takriban mlolongo sawa wa vitendo. Zote huingiza programu hasidi ya darasa la RAT kwenye mchakato wa Windows unaoaminika. Zote zina anwani za C&C zilizosajiliwa kwa kutumia huduma za Dynamic DNS.
Hata hivyo, hatuwezi kudai kuwa hati hizi zote zilisambazwa na wavamizi sawa, isipokuwa sampuli zilizo na anwani sawa za C&C (kwa mfano, kimjoy007.dyndns.org).