RATKing: రిమోట్ యాక్సెస్ ట్రోజన్లతో కొత్త ప్రచారం
మే నెలాఖరులో, రిమోట్ యాక్సెస్ ట్రోజన్ (RAT) మాల్వేర్-ప్రోగ్రామ్లను పంపిణీ చేసే ప్రచారాన్ని మేము కనుగొన్నాము—అటాకర్లు సోకిన సిస్టమ్ను రిమోట్గా నియంత్రించడానికి అనుమతించే ప్రోగ్రామ్లు.
మేము పరిశీలించిన సమూహం ఇన్ఫెక్షన్ కోసం నిర్దిష్ట RAT కుటుంబాన్ని ఎన్నుకోలేదు అనే వాస్తవం ద్వారా ప్రత్యేకించబడింది. ప్రచారంలో జరిగిన దాడులలో అనేక ట్రోజన్లు గుర్తించబడ్డాయి (ఇవన్నీ విస్తృతంగా అందుబాటులో ఉన్నాయి). ఈ లక్షణంతో, సమూహం ఎలుక రాజు గురించి మాకు గుర్తు చేసింది - ఒక పౌరాణిక జంతువు, ఇది ఒకదానితో ఒకటి ముడిపడి ఉన్న తోకలతో కూడిన ఎలుకలను కలిగి ఉంటుంది.
అసలైనది K. N. రోసికోవ్ చేత మోనోగ్రాఫ్ నుండి తీసుకోబడింది "ఎలుకలు మరియు ఎలుకల వంటి ఎలుకలు, ఆర్థికంగా చాలా ముఖ్యమైనవి" (1908)
ఈ జీవికి గౌరవసూచకంగా, మేము RATKingని పరిశీలిస్తున్న సమూహానికి పేరు పెట్టాము. ఈ పోస్ట్లో, దాడి చేసేవారు దాడిని ఎలా చేసారు, వారు ఏ సాధనాలను ఉపయోగించారు మరియు ఈ ప్రచారానికి ఆపాదించడంపై మా ఆలోచనలను కూడా మేము వివరంగా తెలియజేస్తాము.
దాడి పురోగతి
ఈ ప్రచారంలోని అన్ని దాడులు క్రింది అల్గోరిథం ప్రకారం జరిగాయి:
వినియోగదారు Google డిస్క్కి లింక్తో ఫిషింగ్ ఇమెయిల్ను అందుకున్నారు.
లింక్ను ఉపయోగించి, బాధితుడు హానికరమైన VBS స్క్రిప్ట్ను డౌన్లోడ్ చేశాడు, అది Windows రిజిస్ట్రీకి తుది పేలోడ్ను లోడ్ చేయడానికి DLL లైబ్రరీని పేర్కొన్నది మరియు దానిని అమలు చేయడానికి PowerShellని ప్రారంభించింది.
DLL లైబ్రరీ చివరి పేలోడ్ను ఇంజెక్ట్ చేసింది - వాస్తవానికి, దాడి చేసేవారు ఉపయోగించే RATలలో ఒకటి - సిస్టమ్ ప్రాసెస్లోకి మరియు సోకిన మెషీన్లో పట్టు సాధించడానికి ఆటోరన్లో VBS స్క్రిప్ట్ను నమోదు చేసింది.
చివరి పేలోడ్ సిస్టమ్ ప్రాసెస్లో అమలు చేయబడింది మరియు దాడి చేసే వ్యక్తికి సోకిన కంప్యూటర్ను నియంత్రించే సామర్థ్యాన్ని అందించింది.
క్రమపద్ధతిలో దీనిని ఇలా సూచించవచ్చు:
తర్వాత, మాల్వేర్ డెలివరీ మెకానిజంపై మాకు ఆసక్తి ఉన్నందున, మేము మొదటి మూడు దశలపై దృష్టి పెడతాము. మాల్వేర్ యొక్క ఆపరేషన్ యొక్క యంత్రాంగాన్ని మేము వివరంగా వివరించము. అవి విస్తృతంగా అందుబాటులో ఉన్నాయి - ప్రత్యేక ఫోరమ్లలో విక్రయించబడతాయి లేదా ఓపెన్ సోర్స్ ప్రాజెక్ట్లుగా కూడా పంపిణీ చేయబడతాయి - అందువల్ల ఇవి RATKing సమూహానికి ప్రత్యేకమైనవి కావు.
దాడి దశల విశ్లేషణ
దశ 1. ఫిషింగ్ ఇమెయిల్
బాధితుడు హానికరమైన లేఖను స్వీకరించడంతో దాడి ప్రారంభమైంది (దాడి చేసేవారు టెక్స్ట్తో విభిన్న టెంప్లేట్లను ఉపయోగించారు; దిగువ స్క్రీన్షాట్ ఒక ఉదాహరణను చూపుతుంది). సందేశం చట్టబద్ధమైన రిపోజిటరీకి లింక్ను కలిగి ఉంది drive.google.com, ఇది PDF డాక్యుమెంట్ డౌన్లోడ్ పేజీకి దారితీసింది.
ఫిషింగ్ ఇమెయిల్ ఉదాహరణ
అయితే, వాస్తవానికి, ఇది పూర్తిగా లోడ్ చేయబడిన PDF పత్రం కాదు, కానీ VBS స్క్రిప్ట్.
మీరు ఎగువ స్క్రీన్షాట్లోని ఇమెయిల్ నుండి లింక్పై క్లిక్ చేసినప్పుడు, ఫైల్ పేరు పెట్టబడింది Cargo Flight Details.vbs. ఈ సందర్భంలో, దాడి చేసినవారు ఫైల్ను చట్టబద్ధమైన పత్రంగా మార్చడానికి కూడా ప్రయత్నించలేదు.
అదే సమయంలో, ఈ ప్రచారంలో భాగంగా, మేము ఒక స్క్రిప్ట్ని కనుగొన్నాము Cargo Trip Detail.pdf.vbs. Windows ఫైల్ ఎక్స్టెన్షన్లను డిఫాల్ట్గా దాచిపెట్టినందున ఇది ఇప్పటికే చట్టబద్ధమైన PDF కోసం పాస్ కావచ్చు. నిజమే, ఈ సందర్భంలో, అనుమానం ఇప్పటికీ VBS స్క్రిప్ట్కు అనుగుణంగా ఉన్న దాని చిహ్నం ద్వారా ప్రేరేపించబడవచ్చు.
ఈ దశలో, బాధితుడు మోసాన్ని గుర్తించగలడు: ఒక్క క్షణం డౌన్లోడ్ చేసిన ఫైల్లను నిశితంగా పరిశీలించండి. అయినప్పటికీ, ఇటువంటి ఫిషింగ్ ప్రచారాలలో, దాడి చేసేవారు తరచుగా అజాగ్రత్త లేదా పరుగెత్తే వినియోగదారుపై ఆధారపడతారు.
దశ 2. VBS స్క్రిప్ట్ ఆపరేషన్
వినియోగదారు అనుకోకుండా తెరవగలిగే VBS స్క్రిప్ట్, Windows రిజిస్ట్రీలో DLL లైబ్రరీని నమోదు చేసింది. స్క్రిప్ట్ అస్పష్టంగా ఉంది: దానిలోని పంక్తులు ఏకపక్ష అక్షరంతో వేరు చేయబడిన బైట్లుగా వ్రాయబడ్డాయి.
అస్పష్టమైన స్క్రిప్ట్కి ఉదాహరణ
డియోబ్ఫస్కేషన్ అల్గోరిథం చాలా సులభం: ప్రతి మూడవ అక్షరం అస్పష్టమైన స్ట్రింగ్ నుండి మినహాయించబడింది, ఆ తర్వాత ఫలితం బేస్16 నుండి అసలు స్ట్రింగ్లోకి డీకోడ్ చేయబడింది. ఉదాహరణకు, విలువ నుండి 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (పై స్క్రీన్షాట్లో హైలైట్ చేయబడింది) ఫలిత పంక్తి WScript.Shell.
తీగలను తొలగించడానికి, మేము పైథాన్ ఫంక్షన్ని ఉపయోగించాము:
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 ఫైల్కు దారితీసిన విలువను మేము హైలైట్ చేస్తాము. పవర్షెల్ ఉపయోగించి తదుపరి దశలో అతను ప్రారంభించబడ్డాడు.
అస్పష్టమైన DLLతో స్ట్రింగ్
స్ట్రింగ్లు నిర్వీర్యం చేయబడినందున VBS స్క్రిప్ట్లోని ప్రతి ఫంక్షన్ అమలు చేయబడింది.
స్క్రిప్ట్ని అమలు చేసిన తర్వాత, ఫంక్షన్ని పిలిచారు wscript.sleep - ఇది వాయిదా అమలు చేయడానికి ఉపయోగించబడింది.
తరువాత, స్క్రిప్ట్ Windows రిజిస్ట్రీతో పని చేసింది. ఇందుకోసం డబ్ల్యూఎంఐ టెక్నాలజీని ఉపయోగించాడు. దాని సహాయంతో, ఒక ప్రత్యేకమైన కీ సృష్టించబడింది మరియు ఎక్జిక్యూటబుల్ ఫైల్ యొక్క శరీరం దాని పరామితికి వ్రాయబడింది. కింది ఆదేశాన్ని ఉపయోగించి రిజిస్ట్రీ WMI ద్వారా యాక్సెస్ చేయబడింది:
VBS స్క్రిప్ట్ ద్వారా రిజిస్ట్రీలో నమోదు చేయబడింది
దశ 3. DLL లైబ్రరీ యొక్క ఆపరేషన్
మూడవ దశలో, హానికరమైన DLL తుది పేలోడ్ను లోడ్ చేసి, సిస్టమ్ ప్రాసెస్లోకి ఇంజెక్ట్ చేసి, వినియోగదారు లాగిన్ అయినప్పుడు VBS స్క్రిప్ట్ ఆటోస్టార్ట్ అయ్యేలా చూసింది.
PowerShell ద్వారా అమలు చేయండి
పవర్షెల్లో కింది ఆదేశాన్ని ఉపయోగించి DLL అమలు చేయబడింది:
పేరుతో రిజిస్ట్రీ విలువ డేటాను పొందింది rnd_value_name — ఈ డేటా .Net ప్లాట్ఫారమ్పై వ్రాయబడిన DLL ఫైల్;
ఫలితంగా .నెట్ మాడ్యూల్ ప్రాసెస్ మెమరీలోకి లోడ్ చేయబడింది powershell.exe ఫంక్షన్ ఉపయోగించి [System.Threading.Thread]::GetDomain().Load()(లోడ్() ఫంక్షన్ యొక్క వివరణాత్మక వివరణ Microsoft వెబ్సైట్లో అందుబాటులో ఉంది);
ఫంక్షన్ నిర్వహించారు GUyyvmzVhebFCw]::EhwwK() - DLL లైబ్రరీ యొక్క అమలు దానితో ప్రారంభమైంది - పారామితులతో vbsScriptPath, xorKey, vbsScriptName. పరామితి xorKey చివరి పేలోడ్ మరియు పారామితులను డీక్రిప్ట్ చేయడానికి కీని నిల్వ చేసింది vbsScriptPath и vbsScriptName ఆటోరన్లో VBS స్క్రిప్ట్ను నమోదు చేయడానికి బదిలీ చేయబడ్డాయి.
DLL లైబ్రరీ వివరణ
డీకంపైల్ చేసిన రూపంలో, బూట్లోడర్ ఇలా కనిపిస్తుంది:
డీకంపైల్ చేయబడిన రూపంలో లోడర్ (DLL లైబ్రరీ యొక్క అమలు ప్రారంభమైన ఫంక్షన్ ఎరుపు రంగులో అండర్లైన్ చేయబడింది)
బూట్లోడర్ .నెట్ రియాక్టర్ ప్రొటెక్టర్ ద్వారా రక్షించబడింది. డి4డాట్ యుటిలిటీ ఈ ప్రొటెక్టర్ను తొలగించడంలో అద్భుతమైన పని చేస్తుంది.
ఈ లోడర్:
సిస్టమ్ ప్రాసెస్లోకి పేలోడ్ను ఇంజెక్ట్ చేసింది (ఈ ఉదాహరణలో ఇది 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. దీన్ని చేయడానికి మేము ఈ క్రింది పైథాన్ ఫంక్షన్ని ఉపయోగించాము:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
ఫలితంగా, మేము కనుగొన్నాము:
array PE ఫైల్ - ఇది చివరి పేలోడ్;
array2 ఇంజెక్షన్ చేయడానికి అవసరమైన షెల్కోడ్.
శ్రేణి నుండి షెల్కోడ్ array2 ఫంక్షన్ విలువగా ఆమోదించబడింది lpPrevWndFunc ఒక ఫంక్షన్ లోకి CallWindowProcA. lpPrevWndFunc - కాల్బ్యాక్ ఫంక్షన్, దాని నమూనా ఇలా కనిపిస్తుంది:
కాబట్టి మీరు ఫంక్షన్ను అమలు చేసినప్పుడు CallWindowProcA పారామితులతో hWnd, Msg, wParam, lParam శ్రేణి నుండి షెల్కోడ్ అమలు చేయబడుతుంది array2 వాదనలతో hWnd и Msg. hWnd ఎక్జిక్యూటబుల్ ఫైల్కి పాత్ను కలిగి ఉన్న స్ట్రింగ్కు పాయింటర్ svchost.exeమరియు Msg - తుది పేలోడ్కు పాయింటర్.
షెల్కోడ్ ఫంక్షన్ చిరునామాలను పొందింది kernel32.dll и ntdll32.dll వారి పేర్ల నుండి హాష్ విలువల ఆధారంగా మరియు ప్రాసెస్ మెమరీలో తుది పేలోడ్ను ఇంజెక్ట్ చేసింది svchost.exeప్రాసెస్ హోలోవింగ్ టెక్నిక్ని ఉపయోగించడం (మీరు దీని గురించి మరింత చదవవచ్చు వ్యాసం) షెల్కోడ్ను ఇంజెక్ట్ చేస్తున్నప్పుడు:
ఒక ప్రక్రియను సృష్టించింది svchost.exe ఫంక్షన్ని ఉపయోగించి సస్పెండ్ చేయబడిన స్థితిలో CreateProcessW;
ప్రక్రియ యొక్క చిరునామా స్థలంలో విభాగం యొక్క ప్రదర్శనను దాచిపెట్టింది svchost.exe ఫంక్షన్ ఉపయోగించి NtUnmapViewOfSection. అందువలన, ప్రోగ్రామ్ అసలు ప్రక్రియ యొక్క మెమరీని విముక్తి చేసింది svchost.exeఈ చిరునామాలో పేలోడ్ కోసం మెమరీని కేటాయించడానికి;
ప్రక్రియ చిరునామా స్థలంలో పేలోడ్ కోసం మెమరీ కేటాయించబడింది svchost.exe ఫంక్షన్ ఉపయోగించి VirtualAllocEx;
ఇంజెక్షన్ ప్రక్రియ ప్రారంభం
పేలోడ్ యొక్క కంటెంట్లను ప్రాసెస్ అడ్రస్ స్పేస్లో వ్రాసింది svchost.exe ఫంక్షన్ ఉపయోగించి WriteProcessMemory (క్రింద స్క్రీన్షాట్లో ఉన్నట్లు);
ప్రక్రియను పునఃప్రారంభించారు svchost.exe ఫంక్షన్ ఉపయోగించి ResumeThread.
ఇంజెక్షన్ ప్రక్రియను పూర్తి చేస్తోంది
డౌన్లోడ్ చేయగల మాల్వేర్
వివరించిన చర్యల ఫలితంగా, సోకిన సిస్టమ్లో అనేక RAT-తరగతి మాల్వేర్లలో ఒకటి ఇన్స్టాల్ చేయబడింది. దిగువ పట్టిక దాడిలో ఉపయోగించిన మాల్వేర్ను జాబితా చేస్తుంది, నమూనాలు ఒకే కమాండ్ మరియు కంట్రోల్ సర్వర్ని యాక్సెస్ చేసినందున, దాడి చేసేవారి సమూహానికి మేము నమ్మకంగా ఆపాదించవచ్చు.
అదే నియంత్రణ సర్వర్తో పంపిణీ చేయబడిన మాల్వేర్ ఉదాహరణలు
ఇక్కడ రెండు విషయాలు గమనించాలి.
మొదటిది, దాడి చేసేవారు ఒకేసారి అనేక రకాల RAT కుటుంబాలను ఉపయోగించారనే వాస్తవం. ఈ ప్రవర్తన సుప్రసిద్ధ సైబర్ సమూహాలకు విలక్షణమైనది కాదు, ఇది తరచుగా వారికి సుపరిచితమైన ఒకే విధమైన సాధనాలను ఉపయోగిస్తుంది.
రెండవది, RATKing ప్రత్యేక ఫోరమ్లలో తక్కువ ధరకు విక్రయించబడే మాల్వేర్ను ఉపయోగించింది లేదా ఓపెన్ సోర్స్ ప్రాజెక్ట్ కూడా.
ప్రచారంలో ఉపయోగించిన మాల్వేర్ యొక్క పూర్తి జాబితా-ఒక ముఖ్యమైన హెచ్చరికతో-వ్యాసం చివరిలో ఇవ్వబడింది.
సమూహం గురించి
మేము వివరించిన హానికరమైన ప్రచారాన్ని తెలిసిన దాడి చేసేవారికి ఆపాదించలేము. ప్రస్తుతానికి, ఈ దాడులు ప్రాథమికంగా కొత్త సమూహంచే నిర్వహించబడ్డాయని మేము నమ్ముతున్నాము. మేము ప్రారంభంలో వ్రాసినట్లుగా, మేము దానిని RATKing అని పిలిచాము.
VBS స్క్రిప్ట్ను రూపొందించడానికి, సమూహం బహుశా యుటిలిటీకి సమానమైన సాధనాన్ని ఉపయోగించింది VBS-క్రిప్టర్ డెవలపర్ నుండి NYAN-x-CAT. దాడి చేసేవారి స్క్రిప్ట్తో ఈ ప్రోగ్రామ్ సృష్టించే స్క్రిప్ట్ యొక్క సారూప్యత ద్వారా ఇది సూచించబడుతుంది. ప్రత్యేకంగా, అవి రెండూ:
ఫంక్షన్ని ఉపయోగించి ఆలస్యంగా అమలు చేయండి Sleep;
WMI ఉపయోగించండి;
ఎక్జిక్యూటబుల్ ఫైల్ యొక్క బాడీని రిజిస్ట్రీ కీ పారామీటర్గా నమోదు చేయండి;
ఈ ఫైల్ని పవర్షెల్ ఉపయోగించి దాని స్వంత చిరునామా స్థలంలో అమలు చేయండి.
స్పష్టత కోసం, రిజిస్ట్రీ నుండి ఫైల్ను అమలు చేయడానికి పవర్షెల్ ఆదేశాన్ని సరిపోల్చండి, ఇది VBS-క్రిప్టర్ ఉపయోగించి సృష్టించబడిన స్క్రిప్ట్ ద్వారా ఉపయోగించబడుతుంది:
దాడి చేసేవారు NYAN-x-CAT నుండి మరొక ప్రయోజనాన్ని పేలోడ్లలో ఒకటిగా ఉపయోగించారని గమనించండి - లైమెరాట్.
C&C సర్వర్ల చిరునామాలు RATKing యొక్క మరొక ప్రత్యేక లక్షణాన్ని సూచిస్తాయి: సమూహం డైనమిక్ DNS సేవలను ఇష్టపడుతుంది (IoC పట్టికలోని C&Cల జాబితాను చూడండి).
IoC
దిగువ పట్టిక VBS స్క్రిప్ట్ల పూర్తి జాబితాను అందిస్తుంది, అవి వివరించిన ప్రచారానికి ఎక్కువగా ఆపాదించబడతాయి. ఈ స్క్రిప్ట్లన్నీ ఒకేలా ఉంటాయి మరియు ఇంచుమించు ఒకే విధమైన చర్యలను నిర్వహిస్తాయి. అవన్నీ RAT క్లాస్ మాల్వేర్ను విశ్వసనీయ Windows ప్రాసెస్లోకి ఇంజెక్ట్ చేస్తాయి. వీటన్నింటికీ C&C చిరునామాలు డైనమిక్ DNS సేవలను ఉపయోగించి నమోదు చేయబడ్డాయి.
అయినప్పటికీ, ఒకే C&C చిరునామాలతో (ఉదాహరణకు, kimjoy007.dyndns.org) నమూనాలను మినహాయించి, ఈ స్క్రిప్ట్లన్నీ ఒకే దాడి చేసేవారిచే పంపిణీ చేయబడిందని మేము క్లెయిమ్ చేయలేము.