ProHoster > Блог > басқарма > RATKing: қашықтан қол жеткізу трояндары бар жаңа науқан
RATKing: қашықтан қол жеткізу трояндары бар жаңа науқан
Мамыр айының соңында біз зиянкестерге вирус жұққан жүйені қашықтан басқаруға мүмкіндік беретін Remote Access Trojan (RAT) зиянды бағдарламалық құралын тарату науқанын анықтадық.
Біз зерттеген топ инфекцияға арналған арнайы RAT тобын таңдамағанымен ерекшеленді. Науқан аясында шабуылдарда бірнеше трояндар байқалды (олардың барлығы кеңінен қол жетімді болды). Осы ерекшелігімен топ бізге егеуқұйрық патшасын еске түсірді - құйрықтары бір-бірімен өрілген кеміргіштерден тұратын мифтік жануар.
Түпнұсқа К.Н.Россиковтың «Тышқандар мен тышқан тәрізді кеміргіштер, шаруашылық жағынан ең маңыздысы» (1908) монографиясынан алынған.
Осы жаратылыстың құрметіне біз қарастырып жатқан топты RATKing деп атадық. Бұл постта біз шабуылдаушылар шабуылды қалай жасағаны, олар қандай құралдарды пайдаланғаны туралы егжей-тегжейлі қарастырамыз, сонымен қатар осы науқанға атрибуция туралы ойларымызбен бөлісеміз.
Шабуыл барысы
Бұл науқандағы барлық шабуылдар келесі алгоритм бойынша жүзеге асырылды:
Пайдаланушы Google Drive сілтемесі бар фишингтік электрондық поштаны алды.
Сілтемені пайдалана отырып, жәбірленуші Windows тізіліміне соңғы пайдалы жүктемені жүктеу үшін DLL кітапханасын көрсететін зиянды VBS сценарийін жүктеп алып, оны орындау үшін PowerShell бағдарламасын іске қосты.
DLL кітапханасы соңғы пайдалы жүктемені - шын мәнінде, шабуылдаушылар пайдаланатын RAT-тардың бірін - жүйе процесіне енгізді және вирус жұққан құрылғыда орын алу үшін autorun жүйесінде VBS сценарийін тіркеді.
Соңғы пайдалы жүктеме жүйелік процесте орындалды және шабуылдаушыға вирус жұққан компьютерді басқару мүмкіндігін берді.
Оны схемалық түрде келесідей көрсетуге болады:
Әрі қарай, біз зиянды бағдарламаларды жеткізу механизміне қызығушылық танытқандықтан, алғашқы үш кезеңге тоқталамыз. Біз зиянды бағдарламаның жұмыс істеу механизмін егжей-тегжейлі сипаттамаймыз. Олар кеңінен қол жетімді - мамандандырылған форумдарда сатылады немесе тіпті ашық бастапқы жобалар ретінде таратылады - сондықтан RATKing тобына ғана тән емес.
Шабуыл кезеңдерін талдау
1-кезең. Фишингтік электрондық пошта
Шабуыл жәбірленушінің зиянды хат алуынан басталды (шабуылдаушылар мәтіні бар әртүрлі үлгілерді пайдаланды; төмендегі скриншот бір мысалды көрсетеді). Хабарламада заңды репозиторийге сілтеме бар drive.google.com, бұл PDF құжатын жүктеп алу бетіне әкелді.
Фишингтік электрондық поштаның мысалы
Дегенмен, шын мәнінде, бұл мүлдем жүктелген PDF құжаты емес, VBS сценарийі болды.
Жоғарыдағы скриншоттағы электрондық поштаның сілтемесін басқаныңызда файл атауы берілген Cargo Flight Details.vbs. Бұл жағдайда шабуылдаушылар файлды заңды құжат ретінде жасыруға тырыспады.
Сонымен бірге, осы науқан аясында біз сценарийді таптық Cargo Trip Detail.pdf.vbs. Ол заңды PDF файлына өтуі мүмкін, себебі Windows әдепкі бойынша файл кеңейтімдерін жасырады. Рас, бұл жағдайда VBS сценарийіне сәйкес келетін оның белгішесі күдік тудыруы мүмкін.
Бұл кезеңде жәбірленуші алдауды тани алады: жүктелген файлдарды бір секундқа мұқият қарап шығыңыз. Дегенмен, мұндай фишингтік науқандарда шабуылдаушылар жиі назар аудармайтын немесе асығыс пайдаланушыға сенеді.
2-кезең. VBS сценарийінің жұмысы
Пайдаланушы байқаусызда аша алатын VBS сценарийі Windows тізілімінде DLL кітапханасын тіркеді. Сценарий түсініксіз болды: ондағы жолдар ерікті таңбамен бөлінген байт ретінде жазылды.
Түсініксіз сценарийдің мысалы
Деобфузация алгоритмі өте қарапайым: әрбір үшінші таңба түсініксіз жолдан алынып тасталды, содан кейін нәтиже base16-дан бастапқы жолға декодталған. Мысалы, мәннен 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (жоғарыдағы скриншотта ерекшеленген) нәтиже жол болды WScript.Shell.
Жолдарды өшіру үшін біз Python функциясын қолдандық:
def decode_str(data_enc):
return binascii.unhexlify(''.join([data_enc[i:i+2] for i in range(0, len(data_enc), 3)]))
Төменде, 9-10 жолдарда деобфузация нәтижесінде DLL файлы болған мәнді бөлектейміз. Ол келесі кезеңде PowerShell көмегімен іске қосылды.
Түсініксіз DLL бар жол
VBS сценарийіндегі әрбір функция жолдар жасырылғандықтан орындалды.
Сценарийді іске қосқаннан кейін функция шақырылды wscript.sleep — кейінге қалдырылған орындауды орындау үшін пайдаланылды.
Содан кейін сценарий Windows тізілімімен жұмыс істеді. Ол бұл үшін WMI технологиясын пайдаланды. Оның көмегімен бірегей кілт құрылып, орындалатын файлдың денесі оның параметріне жазылды. Тізілімге WMI арқылы келесі пәрмен арқылы қол жеткізілді:
Үшінші кезеңде зиянды DLL соңғы пайдалы жүктемені жүктеп, оны жүйе процесіне енгізді және пайдаланушы жүйеге кірген кезде VBS сценарийінің автоматты түрде іске қосылуын қамтамасыз етті.
PowerShell арқылы іске қосыңыз
DLL PowerShell бағдарламасында келесі пәрмен арқылы орындалды:
аты бар тізілім мәні деректерін алды rnd_value_name — бұл деректер .Net платформасында жазылған DLL файлы болды;
нәтижесінде алынған .Net модулін процесс жадына жүктеді powershell.exe функциясын пайдалану [System.Threading.Thread]::GetDomain().Load()(Load() функциясының толық сипаттамасы Microsoft веб-сайтында қол жетімді);
функциясын орындады GUyyvmzVhebFCw]::EhwwK() - DLL кітапханасының орындалуы онымен - параметрлермен басталды vbsScriptPath, xorKey, vbsScriptName... Параметр xorKey соңғы пайдалы жүктеменің шифрын шешуге арналған кілтті және параметрлерді сақтады vbsScriptPath и vbsScriptName VBS сценарийін autorun жүйесінде тіркеу үшін тасымалданды.
DLL кітапханасының сипаттамасы
Декомпиляцияланған түрде жүктеуші келесідей болды:
Декомпиляцияланған түрдегі жүктеуші (DLL кітапханасының орындалуы басталған функция қызыл түспен сызылған)
Жүктеуші .Net Reactor қорғаушысымен қорғалған. de4dot утилитасы бұл қорғағышты алып тастаудың тамаша жұмысын атқарады.
Бұл жүктегіш:
пайдалы жүктемені жүйе процесіне енгізді (бұл мысалда ол svchost.exe);
Мен автоматты іске қосу үшін VBS сценарийін қостым.
екі деректер жиынының шифры шешілді (array и array2 скриншотта). Олар бастапқыда gzip көмегімен қысылған және кілтпен XOR алгоритмімен шифрланған xorKey;
деректерді бөлінген жад аймақтарына көшірді. Деректер array - көрсетілген жады аймағына intPtr (payload pointer скриншотта); деректерінен array2 - көрсетілген жады аймағына intPtr2 (shellcode pointer скриншотта);
функциясы деп аталады CallWindowProcA(Описание Бұл функция Microsoft веб-сайтында қол жетімді) келесі параметрлермен (параметрлердің атаулары төменде берілген, скриншотта олар бірдей тәртіпте, бірақ жұмыс мәндерімен):
lpPrevWndFunc - деректерге көрсеткіш array2;
hWnd — орындалатын файлға жолды қамтитын жолға көрсеткіш svchost.exe;
Msg - деректерге көрсеткіш array;
wParam, lParam — хабарлама параметрлері (бұл жағдайда бұл параметрлер пайдаланылмаған және 0 мәндері болған);
файлды құрады %AppData%MicrosoftWindowsStart MenuProgramsStartup<name>.urlқайда <name> - бұл параметрдің алғашқы 4 таңбасы vbsScriptName (скриншотта осы әрекеті бар код фрагменті пәрменнен басталады File.Copy). Осылайша, пайдаланушы жүйеге кірген кезде зиянды бағдарлама URL файлын автоматты түрде іске қосу файлдарының тізіміне қосты және осылайша вирус жұққан компьютерге тіркелді. URL файлында сценарийге сілтеме бар:
Инъекцияның қалай жүргізілгенін түсіну үшін біз деректер массивтерінің шифрын шештік array и array2. Ол үшін келесі Python функциясын қолдандық:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
Нәтижесінде біз мынаны білдік:
array PE файлы болды - бұл соңғы пайдалы жүктеме;
array2 инъекцияны жүзеге асыру үшін қажетті қабық коды болды.
Массивтен алынған Shellcode array2 функция мәні ретінде беріледі lpPrevWndFunc функцияға айналдырады CallWindowProcA. lpPrevWndFunc — кері шақыру функциясы, оның прототипі келесідей:
Сондықтан функцияны іске қосқан кезде CallWindowProcA параметрлерімен hWnd, Msg, wParam, lParam массивтен қабық коды орындалады array2 дәлелдермен hWnd и Msg. hWnd орындалатын файлға жолды қамтитын жолдың көрсеткіші болып табылады svchost.exeмен Msg — соңғы пайдалы жүктемеге көрсеткіш.
Қабық коды функция мекенжайларын алды kernel32.dll и ntdll32.dll атауларынан хэш мәндеріне негізделген және соңғы пайдалы жүктемені процесс жадына енгізді svchost.exeProcess Hollowing техникасын қолдану (бұл туралы толығырақ мына жерден оқи аласыз мақала). Қабық кодын енгізу кезінде:
процесін құрды svchost.exe функциясын пайдаланып тоқтатылған күйде CreateProcessW;
содан кейін процестің мекенжай кеңістігінде бөлімнің дисплейін жасырыңыз svchost.exe функциясын пайдалану NtUnmapViewOfSection. Осылайша, бағдарлама бастапқы процестің жадын босатты svchost.exeсодан кейін осы мекенжай бойынша пайдалы жүктеме үшін жадты бөлу;
процесс адрестік кеңістігіндегі пайдалы жүктеме үшін бөлінген жад svchost.exe функциясын пайдалану VirtualAllocEx;
Инъекция процесінің басталуы
пайдалы жүктің мазмұнын процестің мекенжай кеңістігіне жазды svchost.exe функциясын пайдалану WriteProcessMemory (төмендегі скриншоттағыдай);
процесін қайта бастады svchost.exe функциясын пайдалану ResumeThread.
Инъекция процесін аяқтау
Жүктеп алынатын зиянды бағдарлама
Сипатталған әрекеттердің нәтижесінде вирус жұққан жүйеге RAT класындағы бірнеше зиянды бағдарламалардың бірі орнатылды. Төмендегі кестеде шабуылда пайдаланылған зиянды бағдарламалар тізімі берілген, біз оны шабуылдаушылар тобына сенімді түрде жатқыза аламыз, өйткені үлгілер бірдей пәрмен және басқару серверіне қол жеткізген.
Бірдей басқару сервері бар таратылған зиянды бағдарламалардың мысалдары
Бұл жерде екі нәрсе назар аудартады.
Біріншіден, шабуылдаушылар бірден бірнеше түрлі RAT отбасыларын пайдаланды. Бұл мінез-құлық өздеріне таныс құралдардың шамамен бірдей жиынтығын жиі пайдаланатын белгілі кибер топтарға тән емес.
Екіншіден, RATKing арнайы форумдарда төмен бағаға сатылатын немесе тіпті ашық бастапқы жоба болып табылатын зиянды бағдарламаны пайдаланды.
Науқанда пайдаланылған зиянды бағдарламалардың толық тізімі - бір маңызды ескертумен - мақаланың соңында берілген.
Топ туралы
Біз сипатталған зиянды науқанды кез келген белгілі шабуылдаушыларға жатқыза алмаймыз. Әзірге бұл шабуылдарды түбегейлі жаңа топ жасады деп есептейміз. Басында жазғанымыздай, біз оны RATKing деп атадық.
VBS сценарийін жасау үшін топ утилитаға ұқсас құралды пайдаланған болуы мүмкін VBS-Crypter әзірлеушіден NYAN-x-CAT. Бұл осы бағдарламаның шабуылдаушы сценарийімен жасайтын сценарийдің ұқсастығымен көрсетіледі. Атап айтқанда, екеуі де:
Есіңізде болсын, шабуылдаушылар пайдалы жүктемелердің бірі ретінде NYAN-x-CAT басқа утилитасын пайдаланды - LimeRAT.
C&C серверлерінің мекенжайлары RATKing-тің тағы бір айрықша ерекшелігін көрсетеді: топ динамикалық DNS қызметтерін қалайды (IoC кестесіндегі C&C тізімін қараңыз).
IoC
Төмендегі кестеде сипатталған науқанға жатқызылуы мүмкін VBS сценарийлерінің толық тізімі берілген. Барлық осы сценарийлер ұқсас және шамамен бірдей әрекеттер тізбегін орындайды. Олардың барлығы RAT класындағы зиянды бағдарламаны сенімді Windows процесіне енгізеді. Олардың барлығында Dynamic DNS қызметтері арқылы тіркелген C&C мекенжайлары бар.
Дегенмен, C&C мекенжайлары бірдей үлгілерді қоспағанда (мысалы, kimjoy007.dyndns.org) осы сценарийлердің барлығын бірдей шабуылдаушылар таратқан деп айта алмаймыз.