paint-brush
Desemmascarant VEILDrive: els actors d'amenaça exploten els serveis de Microsoft per al comandament i el controlper@rebeccaroyal
841 lectures
841 lectures

Desemmascarant VEILDrive: els actors d'amenaça exploten els serveis de Microsoft per al comandament i el control

per Hunters30m2024/11/11
Read on Terminal Reader

Massa Llarg; Per llegir

- L'equip de caçadors AXON ha identificat i està supervisant actualment una campanya d'amenaça en curs, anomenada "VEILDrive" - La campanya es va identificar originalment com a part d'un compromís d'AXON per abordar una activitat maliciosa identificada a la infraestructura d'un dels nostres clients. - Com a part de la investigació, vam identificar diferents components d'infraestructura de Microsoft d'organitzacions víctimes addicionals que van ser compromeses i utilitzades per l'atacant. - L'atacant va aprofitar diferents serveis i aplicacions SaaS de Microsoft com a part de la campanya, inclosos Microsoft Teams, SharePoint, Quick Assist i OneDrive - L'atacant va utilitzar un mètode de comandament i control (C&C) únic basat en OneDrive com a part del programari maliciós trobat a la infraestructura de la víctima - Segons les conclusions de la nostra investigació, hi ha una probabilitat significativa que aquesta campanya provingui de Rússia - L'equip AXON va informar les seves troballes a Microsoft per ajudar a tancar la infraestructura de l'actor - L'equip també es va posar en contacte amb diverses víctimes afectades identificades durant la nostra investigació
featured image - Desemmascarant VEILDrive: els actors d'amenaça exploten els serveis de Microsoft per al comandament i el control
Hunters HackerNoon profile picture
0-item
1-item
2-item

A càrrec de Hunters Team Axon

TL;DR

  • L'equip de caçadors AXON ha identificat i està supervisant actualment una campanya d'amenaça en curs, anomenada " VEILDrive ".
  • La campanya es va identificar originalment com a part d'un compromís d'AXON per abordar una activitat maliciosa identificada a la infraestructura d'un dels nostres clients.
  • Com a part de la investigació, vam identificar diferents components d'infraestructura de Microsoft d'organitzacions víctimes addicionals que van ser compromeses i utilitzades per l'atacant.
  • L'atacant va aprofitar diferents serveis i aplicacions SaaS de Microsoft com a part de la campanya, inclosos Microsoft Teams, SharePoint, Quick Assist i OneDrive
  • L'atacant va utilitzar un mètode de comandament i control (C&C) únic basat en OneDrive com a part del programari maliciós trobat a la infraestructura de la víctima.
  • A partir de les conclusions de la nostra investigació, hi ha una probabilitat significativa que aquesta campanya provingui de Rússia
  • L'equip AXON va informar les seves troballes a Microsoft per ajudar a tancar la infraestructura de l'actor
  • L'equip també es va posar en contacte amb diverses víctimes afectades identificades durant la nostra investigació


Resum executiu

L'equip de caçadors AXON ha descobert i està supervisant activament una campanya d'amenaça en curs anomenada "VEILDrive". Inicialment descobert durant una investigació d'activitat maliciosa a la infraestructura d'un client, VEILDrive aprofita la suite SaaS de Microsoft, especialment Teams, SharePoint, Quick Assist i OneDrive, per Executar les seves tàctiques, l'actor d'amenaces utilitza un mètode de comandament i control (C&C) basat en OneDrive integrat en un programari maliciós personalitzat que es desplega en entorns compromesos Microsoft i les organitzacions afectades per mitigar una major explotació.


La nostra investigació va començar el setembre de 2024 després d'una resposta a un atac a una entitat d'infraestructura crítica als Estats Units. Les tècniques d'atac de VEILDrive divergeixen clarament del comportament d'amenaça típic. Depenen molt de la infraestructura SaaS de Microsoft per distribuir campanyes de pesca i emmagatzemar programari maliciós. Aquesta estratègia depenent de SaaS complica la detecció en temps real i evita les defenses convencionals.


El programari maliciós associat a VEILDrive és un fitxer .jar basat en Java que no té ofuscament, cosa que el fa inusualment llegible i ben estructurat. Malgrat la seva senzillesa, el programari maliciós va evadir la detecció per part d'una eina de detecció i resposta de punt final (EDR) de primer nivell i tots els motors de seguretat de VirusTotal. Això posa de manifest un risc crític: fins i tot el codi senzill i no ofuscat pot evadir els mecanismes de detecció moderns, cosa que suggereix una necessitat més àmplia de revisar les estratègies de detecció en entorns d'alt risc.


Aquest informe proporciona informació sobre les metodologies de VEILDrive i les limitacions dels enfocaments de detecció actuals per equipar millor la comunitat de ciberseguretat contra les amenaces en evolució.


Fons

El setembre de 2024, l'equip AXON va respondre a un incident dirigit a una empresa d'infraestructura crítica als Estats Units. Aquesta investigació va revelar una campanya d'amenaça única, "VEILDrive", que mostrava tàctiques, tècniques i procediments (TTP) inusuals que es desviaven significativament dels que es veuen habitualment en incidents similars.


A partir dels nostres resultats, calculem que la campanya VEILDrive va començar a principis d'agost de 2024 i continua activa a partir d'aquest informe. Aprofitant els serveis SaaS de Microsoft (inclosos Teams, SharePoint, Quick Assist i OneDrive), l'atacant va explotar les infraestructures de confiança d'organitzacions anteriorment compromeses per distribuir atacs de pesca i emmagatzemar programari maliciós. Aquesta estratègia centrada en el núvol va permetre a l'actor de l'amenaça evitar la detecció pels sistemes de monitorització convencionals.


En particular, VEILDrive va introduir un nou mètode de comandament i control (C&C) basat en OneDrive integrat en programari maliciós basat en Java desplegat en dispositius compromesos. El mateix programari maliciós, un fitxer .jar, presenta dues característiques sorprenents:


  • Transparència del codi: amb zero ofuscació i codi ben estructurat, aquest programari maliciós desafia la tendència típica del disseny centrat en l'evasió, fent-lo inusualment llegible i senzill.
  • Eficàcia furtiva: malgrat la seva simplicitat, aquest programari maliciós no va ser detectat tant per la solució de detecció i resposta de punt final (EDR) de primer nivell desplegada a l'entorn de la víctima com per tots els motors de seguretat de VirusTotal (vegeu la figura 1 a continuació):

Figura 1: captura de pantalla de VirusTotal que mostra programari maliciós Java amb zero deteccions; no detectat per tots els motors de VirusTotal, destacant les capacitats d'evasió.


Aquestes característiques posen de manifest que, fins i tot sense tècniques d'evasió sofisticades, el programari maliciós dissenyat amb cura i no ofuscat pot evadir les defenses modernes. Aquesta investigació subratlla un buit en les estratègies de detecció actuals i posa l'accent en la necessitat de vigilar contra els enfocaments d'atac menys convencionals.


L'equip AXON ha compartit les seves conclusions amb Microsoft i les organitzacions afectades, oferint intel·ligència accionable per mitigar aquesta amenaça en curs.


El camí d'atac VEILDrive

A principis de setembre de 2024, un dels clients de Hunters, anomenat a continuació "Org C", va contractar l'equip AXON per rebre suport per gestionar un incident actiu. El cas es va centrar en un dispositiu específic de l'Org C que s'havia vist compromès mitjançant l'enginyeria social.


Una tasca programada creada de manera sospitosa al dispositiu d'un empleat de l'Org C va activar una alerta, que va provocar una investigació addicional. Mitjançant la correlació dels registres i la comunicació amb l'usuari afectat, l'equip va aclarir el mètode d'accés inicial.


A continuació es mostra un diagrama d'atac que proporciona una visió general d'alt nivell del flux d'atac:


Diagrama d'atac VIELdrive


La seqüència d'esdeveniments es va desenvolupar de la següent manera:

Pas 1

L'actor maliciós va aprofitar Microsoft Teams per enviar missatges a quatre empleats seleccionats de l'Org C, que, a part de no ser tècnics segons els seus rols, no tenien cap altra connexió aparent. L'atacant es va suplantar a un membre de l'equip informàtic i va sol·licitar accés al dispositiu de cada empleat mitjançant l'eina d'utilitat remota Quick Assist .


En lloc d'utilitzar un compte recentment creat per a la suplantació d'identitat, l'atacant va utilitzar un compte d'usuari compromès d'una possible víctima anterior, que es coneix com "Org A".


Els registres d'auditoria de l'M365 es van utilitzar per identificar el spear-phishing de Microsoft Teams.

  • Es van identificar diversos esdeveniments " MessageSent " i " ChatCreated ", tots originats de l'usuari anteriorment compromès de l'Org A , propietat de l'actor de l'amenaça.

  • Tot i que s'han apuntat 4 empleats, només s'ha identificat un esdeveniment " MemberAdded " dirigit a l'usuari compromès de l'Org A .


Figura 2: entrada de registres d'auditoria de Microsoft 365 de l'Org C: mostra l'esdeveniment "MemberAdded" en què el compte d'usuari compromès anteriorment de l'Org A es va afegir a un xat individual amb la víctima de l'Org C.


  • Aquest esdeveniment " MemberAdded " va ser realitzat per l'únic compte d'usuari dels 4 usuaris objectiu que van acceptar la sol·licitud d'accés de l'actor d'amenaça, creant un xat individual. Això significa que aquest usuari era l'únic que va interactuar activament amb el missatge entrant.
  • Aquesta informació s'alineava amb les dades de la telemetria EDR de l'organització, confirmant que l'usuari no només va acceptar la sol·licitud i va rebre el missatge, sinó que també va permetre a l'atacant obtenir l'accés inicial a causa d'una enginyeria social reeixida.


La visió anterior va ser intrigant i valuosa, i va destacar la creixent prevalença de la pesca mitjançant Microsoft Teams i eines de comunicació similars. La distinció entre intents de pesca reeixits i fallits mitjançant els registres d'auditoria M365, juntament amb la correlació amb els registres EDR, pot ser molt important per a les investigacions.


Els missatges de Microsoft Teams rebuts pels usuaris objectiu de l'Org C van ser possibles gràcies a la funcionalitat " Accés extern " de Microsoft Teams, que permet la comunicació One-on-One amb qualsevol organització externa de manera predeterminada.

Pas 2

L'atacant va atraure amb èxit la víctima de l'Org C perquè executés l'eina d'assistència ràpida de Microsoft i li va proporcionar el codi d'accés mitjançant Microsoft Teams. Això va provocar l'accés interactiu de l'actor d'amenaça a l'ordinador de la víctima.

Pas 3

Aleshores, l'actor de l'amenaça va compartir un enllaç de descàrrega al SharePoint d'una organització independent (la víctima pertanyia a un inquilí diferent del que s'utilitzava per a la pesca mitjançant el xat de Microsoft Teams, que ens referirem com a "Org B"). Aquest enllaç contenia un fitxer .zip protegit amb contrasenya anomenat Client_v8.16L.zip, que incloïa diversos fitxers, entre ells una eina RMM addicional.


El fitxer va ser descarregat, probablement a través de mitjans interactius, per l'atacant, ja equipat amb accés remot, que operava sota el context d'explorer.exe, cosa que els va permetre fer clic a l'enllaç i descarregar les eines segons sigui necessari.


Val la pena esmentar que durant la investigació, vam correlacionar els registres d'auditoria M365, que proporcionaven informació precisa sobre els URL entrants als missatges de Microsoft Teams, amb la telemetria EDR de l'amfitrió de la víctima per entendre completament els TTP de l'atacant.


Figura 3: registres d'auditoria de Microsoft 365 de l'Org C que mostren una entrada "MessageSent" amb un URL maliciós enviat per l'atacant mitjançant un compte d'usuari de l'Org C. L'URL dirigeix a SharePoint de l'Org B, on es van allotjar fitxers de programari maliciós per descarregar-los.

Pas 4

Es van fer diversos intents per dur a terme operacions malicioses manuals mitjançant accés remot. Aquestes activitats van implicar principalment esforços de persistència, com ara crear tasques programades per executar repetidament un dels fitxers descarregats per l'atacant: una eina RMM anomenada LiteManager ("ROMServer.exe").

schtasks /Create /TN "Perfomance monitoring" /SC MINUTE /TR C:\ProgramData\500000003\ROMServer.exe

Pas 5

Després de les activitats anteriors, l'actor baixa manualment un altre fitxer .zip anomenat Cliento.zip.


Com abans, l'enllaç es va compartir al xat entre l'usuari víctima i l'actor de l'amenaça. Aquest fitxer .zip incloïa el programari maliciós .JAR principal, així com tot el kit de desenvolupament de Java per executar el programari maliciós .JAR.

Pas 6

L'actor de l'amenaça va executar el programari maliciós .JAR mitjançant el següent: C:\\ProgramData\\Cliento\\jdk-22_windows-x64_bin\\jdk-22.0.2\\bin\\javaw.exe -jar C:\\ProgramData\\Cliento\\Cliento.jar

Pas 7

Es van identificar diverses activitats de xarxa i execucions d'ordres en el context del fitxer .JAR maliciós, com ara:


  • Diverses sol·licituds de DNS/activitat de xarxa sortints a → safeshift390-my.sharepoint.com

  • Diverses sol·licituds de DNS/activitat de xarxa sortints a → graph.microsoft.com

  • Diverses sol·licituds de DNS/activitat de xarxa sortints a → login.microsoftonline.com

  • Execució d'ordres d'enumeració local:

    • Obteniu les especificacions del sistema - Systeminfo
    • Obteniu informació sobre el temps de la màquina: net time
    • Obteniu l'UUID de la màquina ( recordeu-ho; ho parlarem més endavant ) - Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID
    • Enumeració de dispositius USB - {$_.interfacetype -eq \"USB\"}"


La següent captura de pantalla mostra les parts principals de l'arbre de processos relacionades amb activitats malicioses:

Figura 4: arbre de processos resumit del SIEM Next-Gen de Hunters

Pas 8

L'atacant també va afegir un binari JAR maliciós com a clau d'execució al registre per a l'execució persistent del programari maliciós Java.

Línia d'ordres:

Set-ItemProperty -Path \"HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" -Name \"current\" -Value \"C:\\ProgramData\\Cliento\\jdk-22_windows-x64_bin\\jdk-22.0.2\\bin\\javaw.exe -jar C:\\ProgramData\\Cliento\\Cliento.jar\" -ErrorAction Stop"


La contenció i l'eradicació d'aquest incident va ser molt ràpida i eficaç, i segons les proves forenses que teníem, no hi havia indicis que l'atacant aconseguís causar cap dany important a l'amfitrió i l'organització de la víctima.


Una idea clau del flux d'atac detallat anteriorment és que l'atacant va utilitzar diferents serveis de Microsoft coneguts i utilitzats habitualment com a part del seu atac, tant per amagar-se a la vista com per a la seva comoditat.


Resumim ràpidament els serveis de Microsoft utilitzats per l'actor de l'amenaça a partir de la següent taula:

Servei

Llogater

Propòsit

Microsoft Teams

De l'Org A a l'Org C

Spear Phishing Missatges per atraure la víctima a descarregar i executar l'eina de gestió remota

Assistència ràpida

Org C

L'actor de l'amenaça envia un codi d'assistència ràpida mitjançant un missatge de Microsoft Teams per obtenir el control remot inicial

SharePoint

De l'Org B a l'Org C

Els fitxers maliciosos estan "allotjats" a l'arrendatari de SharePoint de l'Org B. Els enllaços de descàrrega es comparteixen amb l'Org C mitjançant missatges de SharePoint i l'atacant els obre mitjançant Quick Assist

API de gràfics

De l'Org C a N/A

Teníem indicis d'accés maliciós a Microsoft Graph (graph[.]microsoft[.]com) iniciat pel cliento.jar maliciós.


En aquesta fase, havíem identificat els quatre serveis/aplicacions de Microsoft esmentats anteriorment. Tot i que vam entendre el propòsit dels tres primers, l'activitat dirigida a l'API Graph no estava clara. Teníem diverses hipòtesis sobre el seu propòsit potencial, però en resposta a incidents, les hipòtesis per si soles no són suficients, oi?


Per recollir més informació i entendre millor el programari maliciós .JAR 'Cliento.jar' a OneDrive/SharePoint, tant per avaluar les possibles accions de l'atacant com per conèixer les seves intencions, vam procedir a una anàlisi detallada del programari maliciós.


Programari maliciós Java "ODC2" - OneDrive com a comandament i control

Hem utilitzat un descompilador Java anomenat "JDGUI" per descompilar el programari maliciós Client.jar (hem anomenat "ODC2").


Només des de la mirada inicial d'alt nivell al programari maliciós, podríem correlacionar-lo immediatament amb l'execució de PowerShell que vam veure a la investigació de l'incident. Això es deu a la inclusió del paquet Java " jPowerShell ": un embolcall de PowerShell per a Java.


A més, vam poder veure paquets addicionals com "ordres", "connexió", "llançador", "o connectar", etc. Això ens va proporcionar una comprensió d'alt nivell de l'estructura del programari maliciós.


Figura 5: captura de pantalla del descompilador de Java


  1. Vam començar amb el Main.class sota el paquet "launcher" i vam trobar un conjunt de credencials codificades en dur utilitzades pel programari maliciós. Això ens va sorprendre una mica, però molt interessant.


Figura 6: Captura de pantalla de Java Decompiler que mostra el contingut del fitxer Cliente.jar amb un focus en el fitxer 'Main.class'


En analitzar més el programari maliciós (tal com es descriu a l'anàlisi detallada següent), vam trobar que el programari maliciós utilitzava aquestes credencials per dur a terme l'autenticació "en nom" a Entra ID. Per dur a terme aquesta autenticació, es va utilitzar el testimoni d'actualització codificat amb l'identificador de client i el secret del client per sol·licitar un testimoni d'accés.


L'autenticació va permetre que el programari maliciós accedeixi a OneDrive d'usuaris específics d'Entra ID, en inquilins suposadament propietat de l'actor, abusant d'aquest accés amb finalitats C2.


  1. A la funció principal de Main.class podem veure el propi punt d'entrada, que inclou diversos fils. Inclou l'execució de les funcions "odThread1" i "mainThread1".


Figura 7: Fragment de codi Java que mostra el mètode principal en una classe Java descompilada, amb diversos fils (odThread1, odThread2, mainThread1, mainThread2) inicialitzant objectes del controlador


"odThread1" inclou l'execució de la funció "odRun" del controlador que obté el primer conjunt de credencials codificades (Token d'actualització, etc.) per a l'autenticació.


  • Utilitza l'adreça IP "40.90.196.221" per a la configuració de connexió "odRun"

  • L'adreça IP "40.90.196.228" per a "Run" inicialitza el sòcol HTTPS al C2 de l'atacant. Aquesta IP també és la IP d'Azure i és molt probable que sigui una màquina virtual. Aquest canal C2, tal com es detalla a continuació, és més "clàssic" i condueix a l'execució d'ordres de PowerShell

  • Per obtenir més informació sobre aquestes adreces IP, vam comprovar recursos coneguts com ipinfo.io i les etiquetes de servei de les adreces IP d'Azure publicades per Microsoft, tal com es mostra a la captura de pantalla següent:



Figura 8: La cerca d'IP a la dreta proporciona detalls per a la IP "40.90.196.228", associada a "microsoft.com" sota el tipus "hosting", sense cap senyalització VPN, proxy, tor o retransmissió activada


  • També val la pena esmentar que l'adreça IP codificada addicional que es troba en aquest programari maliciós (38.180.136.85) sembla que pertany a un altre proveïdor de serveis i està associada amb serveis d'allotjament. Segons les nostres estadístiques, aquesta adreça IP no va ser utilitzada activament pel programari maliciós. Suposem que hi era per motius heretats (infraestructura C2 anterior).


Socket HTTPS C2

  1. Aprofundint una mica més en el "mainThread1()" que executa la funció "ctrl.run()", podem veure que la funció run() intenta crear una connexió i comprova habitualment si la connexió està activa. A continuació, intenta "analitzar el comandament", eliminant-ne les parts irrellevants.


Figura 9: Fragment de codi Java de la classe Controller en un programa Java descompilat


  1. Aquesta funció "executa" utilitza "connect()" per configurar/restablir una connexió. Crea un sòcol a l'adreça IP remota que hem vist més amunt: 40.90.196.228.

  2. Aquesta funció "executa" utilitza "CommandManager", que inclou diferents maneigs per als diferents tipus d'ordres/capacitats que ofereix aquest programari maliciós, inclosa la transferència de fitxers de client a servidor i de servidor a client, compressió de fitxers, captures de pantalla, tancament de connexions de xarxa i, per descomptat, execució d'ordres.


Comprova si l'ordre rebuda està buida o si s'ha rebut una ordre real del servidor C2.


Figura 10: captura de pantalla d'un fragment de codi Java de la classe CommandManager en un programa Java descompilat


  1. Si es troba una ordre, l'analitza i l'executa. L'execució es fa bàsicament en el context de PowerShell.


    L'execució de l'ordre entrant com a ordre PowerShell s'està realitzant mitjançant l'embolcall jPowerShell que hem esmentat anteriorment.

Figura 11: Fragment de codi Java de la classe CommandManager en un programa Java descompilat


Comandament i control de OneDrive

Abans d'aprofundir en el nucli de la funcionalitat OneDrive C2, és important tenir en compte que les parts crítiques del codi del programari maliciós depenen en gran mesura de tres "tipus" específics de fitxers OneDrive: UUID, cf_UUID i rf_UUID. Tal com hem observat en la nostra investigació, l'ordre Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID Es va executar Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID , revelant l'UUID del maquinari del dispositiu. Aquest identificador únic serveix per distingir cada víctima de la campanya VEILDrive.


Cada tipus de fitxer té un paper diferent en les operacions del programari maliciós. La captura de pantalla següent proporciona exemples d'aquests fitxers i les seves funcions principals en l'execució de programari maliciós.


Figura 12: Captura de pantalla que mostra tres fitxers en un directori, cadascun amb un UUID únic


Aprofundim en el flux de la funcionalitat OneDrive C2 i com s'utilitzen aquests fitxers UUID a la pràctica:


  1. A més de les funcions clàssiques d'execució remota a PowerShell, la funció "odRun" és responsable d'un altre fil basat en "OneDrive" com a canal de comunicació. Aquesta és la part única d'aquest programari maliciós.


    El "odRun", tal com el veiem, probablement rep el nom de "OneDrive" (OneDriveRun) i inclou la creació d'una connexió OneDrive mitjançant la funció "Odconnect" com a primer pas:


Figura 13: Fragment de codi Java que mostra el mètode odRun, que pren paràmetres com tenantId, clientId, clientSecret, grantType, accessToken i refreshToken


  1. Com podeu veure, primer la cadena "machineUUID" s'estableix com una cadena buida. Seguida de l'execució de la funció "getMachineUUID()", que, com el seu nom indica, obté l'UUID de la màquina del dispositiu víctima:


Figura 14: Fragment de codi Java que mostra el mètode getMachineUUID, que recupera l'UUID de la màquina. El mètode executa una ordre de PowerShell, 'Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID' i assigna el resultat a la variable machineUUID abans de retornar-lo


  1. Aleshores podem veure que la connexió OneDrive s'està duent a terme mitjançant la funció "OdConnect": la connexió s'està realitzant a "iniciar sessió[.]microsoftonline[.]com" per a la creació/actualització d'un conjunt de fitxes d'accés nous i fitxes d'actualització. .


Figura 15: fragment de codi Java que mostra el mètode updateTokens a la classe Odconnect


  1. La funció "WriteFileToOneDrive" és la següent que s'està cridant, sempre que no hi hagi cap fitxer anomenat UUID de la màquina víctima actual a l'ordinador de destinació, segons una comprovació realitzada per la funció "checkFile".
  • "checkFile": aquesta funció comprova si hi ha un fitxer anomenat == machineUUID a la carpeta inicial de l'usuari actual OneDrive


Figura 16: Fragment de codi Java que mostra el mètode checkFile a la classe Odconnect. Aquest mètode comprova l'existència d'un fitxer a OneDrive mitjançant l'API de Microsoft Graph per llistar fitxers al directori arrel


  1. Si no hi ha aquest fitxer, "writeFileToOneDrive()" entra al joc i crea un fitxer anomenat com a UUID de l'ordinador víctima actual sense cap prefix.


Figura 17: Fragment de codi Java que mostra el mètode writeFileToOneDrive a la classe Odconnect. Aquest mètode carrega un fitxer a OneDrive enviant una sol·licitud PUT a l'API de Microsoft Graph


  1. La següent part de "odRun" és la funció "getFiles()" que obté el contingut de l'UUID.


Fitxer OneDrive que rep el nom de machineUUID del dispositiu (sense prefixos).

  • Si el contingut del fitxer no està buit, comprova si comença amb la paraula "enviar":
    • Realitza una mica de normalització del contingut, preparant-lo per a les properes comprovacions, eliminant la cadena "send" i substituint "\"" per "" (res) desant-lo en una variable anomenada " filenameForDownload ".
    • filenameForDownload s'està passant a la funció getFileDownloadUrl . D'aquesta manera s'obté l'arxiu de la tria de l'atacant. L'atacant especificaria el nom del fitxer després de la paraula "envia" al fitxer UUID i el desaria a la ruta de destinació especificada a la màquina víctima, que és "usuari.inici"\descàrregues (la carpeta de descàrregues).
    • Després d'això, s'està cridant la funció " downloadFile ", baixant el fitxer remot al dispositiu víctima local, basat en la sortida de la funció getFileDownloadUrl .
    • L'atacant rep una indicació sobre l'execució del fitxer utilitzant " writeFileToOneDrive " que s'executa just després com a part de "odRun" per escriure el següent "rf_" + "send file" + filenameForDownload + "done" → per informar l'atacant. que s'ha dut a terme l'execució. Després d'això, hi ha una altra execució de "writeFileToOneDrive", en la qual s'està escrivint un altre fitxer, anomenat "cf_" + machineUUID a OneDrive, sense cap contingut.
  • Si el contingut del fitxer no està buit però no comença per "enviar":
    • S'executarà el contingut del fitxer cf_MachineUUID.

    • Seguit de nou escrivint un fitxer a OneDrive, utilitzant " writeFileToOneDrive ", primer "rf_" + machineUUID, amb el contingut de la resposta d'execució.

    • I un altre ús de " writeFileToOneDrive ", per escriure i buidar el fitxer "cf_", bàsicament impedint una altra execució de la mateixa ordre (ja que el programari maliciós s'executa en bucle).


Per resumir breument, aquest programari maliciós sembla tenir dos canals C2 diferents amb els quals pot funcionar:


  • HTTPS Socket C2 : un enfocament més clàssic, rebent ordres d'una màquina virtual Azure remota i executant-les en el context de PowerShell.

  • C2 basat en OneDrive : això és més únic i la seva manera de funcionar és una mica més complexa i creativa. Inclou tres fitxers diferents, tots els quals inclouen l'UUID del dispositiu víctima, alguns amb prefixos (rf_ i cf_). Per facilitar a l'actor d'amenaces enviar ordres i rebre-les mitjançant Microsoft Graph.


    Nota : és important esmentar que aquest programari maliciós té capacitats addicionals a més de l'execució d'ordres estàndard, inclosa la transferència de fitxers. Tanmateix, la informació detallada anterior se centra només en l'aspecte d'execució de comandaments.


Serveis/aplicacions de Microsoft com a infraestructura de l'atacant

En aquest punt, està clar que aquest atac combinava hàbilment tècniques senzilles amb tàctiques úniques i sofisticades. Una característica destacada de la nostra investigació inicial va ser l'ús extensiu de la infraestructura i els serveis de Microsoft integrats al llarg de la campanya.

Després d'analitzar el programari maliciós i correlacionar la nova informació amb les nostres estadístiques de la investigació, vam tenir una comprensió més clara de l'ús que l'atacant fa de diversos serveis i els seus propòsits. Vam descobrir que la utilització dels serveis i la infraestructura de Microsoft era encara més extensa del que es pensava inicialment.


Vegeu la taula següent per a un breu resum:

Servei

Llogater

Propòsit

Microsoft Teams

De l'Org A a l'Org C

Spear Phishing Missatges per atraure la víctima a descarregar i executar una eina de gestió remota

Assistència ràpida

Org C

L'actor de l'amenaça envia un codi d'assistència ràpida mitjançant un missatge de Microsoft Teams per obtenir el control remot inicial

SharePoint

De l'Org B a l'Org C

Els fitxers maliciosos estan "allotjats" a l'inquilí de SharePoint de l'Org B. Els enllaços de descàrrega es comparteixen amb l'Org C a través de missatges de SharePoint i l'atacant els obre mitjançant Quick Assist

Azure VM

Infraestructura de l'atacant

El programari maliciós es va comunicar amb una màquina virtual d'Azure propietat de l'actor d'amenaces amb finalitats HTTPS Socket C2

OneDrive (API de gràfics)

Entre els hostes OneDrive i Org C de l'atacant

L'actor de l'amenaça va utilitzar OneDrive com a canal C2 addicional, per obtenir capacitats com l'execució remota d'ordres, fer captures de pantalla, baixar/carregar fitxers, etc. dirigits als host(s) de l'Org C.

Registre de l'aplicació Azure AD

Entre l'amfitrió OneDrive de l'atacant i l'Org C (s

L'aplicació es va utilitzar per a l'autenticació en nom d'un compte d'usuari d'Azure AD propietat de l'actor i accedir a la seva carpeta d'inici de OneDrive


Indicadors de compromís (IOCS)

  • Llogaters d'ID d'Entra coneguts propietat de l'atacant:
    • C5f077f6-5f7e-41a3-8354-8e31d50ee4d
    • 893e5862-3e08-434b-9067-3289bec85f7d
  • Les aplicacions conegudes registrades pels ID de client atacants:
    • B686e964-b479-4ff5-bef6-e360321a9b65
    • 2c73cab1-a8ee-4073-96fd-38245d976882
  • Inquilins d'identificació d'entrada utilitzats per l'atacant (cerqueu la sol·licitud DNS sortint cap a aquests dominis):
    • SafeShift390[.]onmicrosoft[.]com
    • GreenGuard036[.]onmicrosoft[.]com
  • Fitxer IOC (SHA256) trobat com a part de la investigació:
    • ROMServer.exe a515634efa79685970e0930332233aee74ec95aed94271e674445712549dd254
    • HookDrv.dll 1040aede16d944be8831518c68edb14ccbf255feae3ea200c9401186f62d2cc4
    • ROMFUSClient.exe 7f61ff9dc6bea9dee11edfbc641550015270b2e8230b6196e3e9e354ff39da0e
    • AledensoftIpcServer.dll d6af24a340fe1a0c6265399bfb2823ac01782e17fc0f966554e01b6a1110473f
    • ROMwln.dll 7f33398b98e225f56cd287060beff6773abb92404afc21436b0a20124919fe05
  • Adreces IP:
    • 40.90.196[.]221
    • 40.90.196[.]228
    • 38.180.136[.]85
    • 213.87.86[.]192



Consultes de caça d'amenaces

A més dels IOC específics esmentats anteriorment, hem creat diverses consultes de caça d'amenaces que es poden utilitzar per detectar atacs originats pel mateix actor, realitzats sota la mateixa campanya o compartint característiques similars (TTP).

Nota: el període de caça recomanat per a VEILDrive és a partir del juliol de 2024.


CONSULTA DE CAÇA 1 : Powershell de generació de Javaw amb banderes específiques - Comportament inusual

  • Lògica de consulta: durant la nostra anàlisi, vam identificar que l'eina d'accés remot (RAT) de l'atacant utilitzava Powershell per obtenir l'UUID de la màquina com a part del seu procés d'execució. Aquesta consulta detecta casos inusuals de Powershell generat per javaw.exe amb els indicadors de línia d'ordres específics utilitzats per l'actor de l'amenaça.

  • Consulta:

     SELECT EVENT_TIME, AGENT_ID, PARENT_PROCESS_NAME, PARENT_PROCESS_COMMANDLINE, INITIATING_PROCESS_NAME, INITIATING_PROCESS_COMMANDLINE, TARGET_PROCESS_NAME, TARGET_PROCESS_COMMANDLINE, TARGET_PROCESS_OS_PID FROM INVESTIGATION.EDR_PROCESS_CREATION_EVENTS WHERE 1=1 AND PARENT_PROCESS_NAME ILIKE '%javaw%' AND INITIATING_PROCESS_NAME ILIKE '%cmd%' AND TARGET_PROCESS_NAME ILIKE '%powershell%' AND TARGET_PROCESS_COMMANDLINE ILIKE 'powershell.exe -ExecutionPolicy Bypass -NoExit -NoProfile %' AND EVENT_TIME > current_timestamp - interval '60d'


HUNTING QUERY 2: Persistència de l'eina ROM mitjançant tasques programades

  • Lògica de consulta: aquesta consulta detecta les instàncies d'una tasca programada registrada amb l'execució d'una eina ROM utilitzada per l'actor de l'amenaça per a la persistència.

  • Consulta:

     SELECT EVENT_TIME AS EVENT_TIME, AID AS AGENT_ID, CID AS COMPUTER_ID, EVENT_SIMPLE_NAME AS EVENT_NAME, RAW:TaskName AS TASK_NAME, RAW:TaskExecCommand AS TASK_EXEC_COMMAND, RAW:TaskAuthor AS TASK_AUTHOR, RAW:UserName AS USER_NAME --- Adjust according to your EDR of choice FROM RAW.CROWDSTRIKE_RAW_EVENTS WHERE EVENT_SIMPLE_NAME = 'ScheduledTaskRegistered' AND TASK_EXEC_COMMAND ILIKE '%romserver%' AND EVENT_TIME > CURRENT_TIMESTAMP - interval '60d'


HUNTING QUERY 3 : usuaris no organitzatius que comparteixen enllaços a dominis Sharepoint de tercers mitjançant Microsoft Teams

  • Lògica de consulta: aquesta consulta detecta casos en què un enllaç de SharePoint es comparteix en un xat d'equips, però el domini de l'enllaç de SharePoint no pertany a cap dels participants del xat. Això podria indicar un possible intent de pesca o exfiltració de dades, on s'utilitza un domini extern per compartir fitxers o informació amb usuaris desprevinguts dins de l'organització.
  • Consulta:
 SET YOUR_ORGANIZATION_NAME = 'hunters'; SELECT EVENT_TIME, ORGANIZATION_ID AS ORG_ID, OPERATION AS EVENT_TYPE, SPLIT_PART(LOWER(SPLIT_PART(USER_ID, '@', 2)), '.', 1) AS SENDER_ORG_DOMAIN, RECORD_SPECIFIC_DETAILS:message_ur_ls AS MESSAGE_URLS, WORKLOAD AS WORKLOAD, USER_ID AS USER_ID, RECORD_SPECIFIC_DETAILS:chat_thread_id AS CHAT_THREAD_ID, RECORD_SPECIFIC_DETAILS:communication_type AS COMMUNICATION_TYPE, RECORD_SPECIFIC_DETAILS:members[0].DisplayName AS MEMBER_DISPLAY_NAME, RECORD_SPECIFIC_DETAILS:members[0].UPN AS MEMBER_UPN, RECORD_SPECIFIC_DETAILS:members[0] AS MEMBERS, RECORD_SPECIFIC_DETAILS:resource_tenant_id AS RESOURCE_TENANT_ID, RECORD_SPECIFIC_DETAILS FROM RAW.O365_AUDIT_LOGS WHERE NOT USER_ID ILIKE '%' || $YOUR_ORGANIZATION_NAME || '%' AND (NOT (MESSAGE_URLS ILIKE '%' || SENDER_ORG_DOMAIN || '%') AND MESSAGE_URLS ILIKE '%sharepoint%') AND NOT MESSAGE_URLS ILIKE '%' || $YOUR_ORGANIZATION_NAME || '%' AND EVENT_TIME > CURRENT_TIMESTAMP - interval '60d'


HUNTING QUERY 4 : Microsoft Teams - Detecció de pesca - Diversos DM de dominis no comuns

  • Lògica de consulta: la consulta següent detecta missatges enviats en un xat un a un per usuaris externs de dominis no comuns. La consulta filtra els dominis molt utilitzats en funció de l'activitat històrica i identifica els membres externs afegits als xats que poden estar duent a terme atacs de pesca.

  • Consulta:

     SET YOUR_DOMAIN_NAME = 'hunters'; --- GET EXTERNAL TEAMS AND ONEDRIVE USERS OF THE LAST 3 MONTHS - TO CLEAN EXTENSIVELY USED DOMAINS WITH COMMONLY_USED_DOMAINS AS ( SELECT LOWER(SPLIT_PART(USER_ID , '@', 2)) AS DOMAIN_COMMONLY_USED, MIN(EVENT_TIME) AS MIN_EVENT_TIME, MAX(EVENT_TIME) AS MAX_EVENT_TIME, ARRAY_AGG(DISTINCT OPERATION) AS OPERATIONS, COUNT(*) AS COUNTER FROM RAW.O365_AUDIT_LOGS WHERE WORKLOAD IN ('MicrosoftTeams', 'OneDrive') AND EVENT_TIME > CURRENT_TIMESTAMP - interval '90d' AND USER_ID ILIKE '%@%' GROUP BY DOMAIN_COMMONLY_USED HAVING COUNTER > 20 ), ---- Get List of External Domains that recently communicated with our organization using Microsoft Teams LATEST_EXTERNAL_DOMAINS AS ( SELECT USER_ID AS LATEST_EXT_USERS, LOWER(SPLIT_PART(USER_ID , '@', 2)) AS USER_DOMAIN, MIN(EVENT_TIME) AS MIN_EVENT_TIME, MAX(EVENT_TIME) AS MAX_EVENT_TIME, ARRAY_AGG(DISTINCT OPERATION) AS OPERATIONS, ARRAY_AGG(DISTINCT RECORD_SPECIFIC_DETAILS:communication_type) AS COMMUNICATION_TYPE, COUNT(*) AS COUNTER FROM RAW.O365_AUDIT_LOGS WHERE EVENT_TIME > CURRENT_TIMESTAMP - interval '50d' AND NOT USER_ID ILIKE '%' || $YOUR_DOMAIN_NAME || '%' AND NOT USER_ID IN ('app@sharepoint') AND USER_ID ILIKE '%@%' -- CLEAN-UP OF EXTENSIVELY USED DOMAINS AND USER_DOMAIN NOT IN (SELECT DISTINCT DOMAIN_COMMONLY_USED FROM COMMONLY_USED_DOMAINS) AND OPERATION IN ('MemberAdded', 'ChatCreated') AND RECORD_SPECIFIC_DETAILS:communication_type = 'OneOnOne' GROUP BY USER_ID HAVING COUNT(*) > 5 ) SELECT EVENT_TIME, ORGANIZATION_ID AS ORG_ID, WORKLOAD AS WORKLOAD, OPERATION AS OPERATION, USER_ID AS USER_ID, LOWER(SPLIT_PART(USER_ID , '@', 2)) AS USER_DOMAIN, RECORD_SPECIFIC_DETAILS:chat_thread_id AS CHAT_THREAD_ID, RECORD_SPECIFIC_DETAILS:communication_type AS COMMUNICATION_TYPE, RECORD_SPECIFIC_DETAILS:members[0].DisplayName AS MEMBER_DISPLAY_NAME_0, RECORD_SPECIFIC_DETAILS:members[0].UPN AS MEMBER_UPN_0, RECORD_SPECIFIC_DETAILS:members[0] AS MEMBERS_0, RECORD_SPECIFIC_DETAILS:members[1].DisplayName AS MEMBER_DISPLAY_NAME_2, RECORD_SPECIFIC_DETAILS:members[1].UPN AS MEMBER_UPN_2, RECORD_SPECIFIC_DETAILS:members[1] AS MEMBERS_2, RECORD_SPECIFIC_DETAILS:resource_tenant_id AS RESOURCE_TENANT_ID, RECORD_SPECIFIC_DETAILS, RAW:ClientIP AS CLIENT_IP FROM RAW.O365_AUDIT_LOGS WHERE 1=1 AND RECORD_SPECIFIC_DETAILS:communication_type = 'OneOnOne' AND ( RECORD_SPECIFIC_DETAILS:members[0].UPN IN (SELECT LATEST_EXT_USERS FROM LATEST_EXTERNAL_DOMAINS) OR RECORD_SPECIFIC_DETAILS:members[1].UPN IN (SELECT LATEST_EXT_USERS FROM LATEST_EXTERNAL_DOMAINS) ) AND USER_ID ILIKE '%' || $YOUR_DOMAIN_NAME || '%' AND OPERATION = 'MemberAdded' AND EVENT_TIME > CURRENT_TIMESTAMP - interval '50d';
  • Lògica de consulta en profunditat: com que aquesta consulta és una mica complexa, aquí teniu una explicació de la lògica. Primer, utilitzem la funció "CTE" de Floquet de neu per construir dues vistes:

    1. COMMONLY_USED_DOMINIS:
      • Extraïm els noms de domini de l'identificador d'usuari dividint la cadena després de la '@'.
      • Compteu tots els esdeveniments generats per cada domini durant els darrers 90 dies
      • Conserveu els dominis que tinguin més de 20 esdeveniments i considereu-los habituals. Podeu ajustar-ho segons les vostres necessitats.
    2. LATEST_EXTERNAL_DOMAINS:
      • Filtra els dominis interns i els dominis d'ús habitual identificats a la visualització anterior de tots els esdeveniments dels darrers 50 dies
      • Consulteu tots els dominis que tinguin més de 5 esdeveniments que impliquen l'enviament de missatges directes i incorporacions de membres als equips.

    Finalment, obtenim informació detallada sobre l'usuari i el seu domini associat consultant els resultats filtrats de LATEST_EXTERNAL_DOMAINS.


Nuggets d'higiene

Vam tractar aspectes de caça i investigació relacionats amb les múltiples tècniques d'atac utilitzades per l'actor. També se sap que alguns d'aquests mètodes i tècniques maliciosos s'utilitzen en diferents campanyes.

Protegir la vostra organització d'aquestes amenaces pot reduir significativament el risc d'atacs reeixits dirigits a diferents parts de la vostra infraestructura organitzativa.

A continuació, es mostren alguns consells d'higiene que es poden utilitzar per millorar la vostra postura de seguretat:


  1. Per reduir les possibilitats d'atacs de pesca amb èxit a través de Microsoft Teams, aquí teniu uns quants passos que podeu seguir:
    • De manera predeterminada, Microsoft Teams permet "Accés extern", que permet xats un a un amb contactes externs. Si això no és essencial per a la vostra organització, penseu a desactivar aquesta opció.
    • Si la comunicació externa és necessària, limiteu-la només als dominis de confiança.
    • Una altra manera de comunicar-se amb parts externes a Microsoft Teams és afegint-los com a convidats o membres. Recomanem fermament restringir aquesta funció, permetent que només els usuaris seleccionats i amb alts privilegis la gestionin.
  2. L'augment dels ciberatacs que utilitzen eines d'administració remota demana distincions clares entre les eines utilitzades legítimament i les explotades pels actors de les amenaces. Aquí hi ha algunes recomanacions:
    • Limiteu les eines d'administració remota a aplicacions específiques i aprovades necessàries per a finalitats empresarials. Quick Assist es pot descarregar fàcilment des de Microsoft Store; penseu en bloquejar-ne l'ús si no és a la llista blanca de la vostra organització. Podeu restringir l'accés aplicant mesures com AppLocker, regles del tallafoc de Windows o gestió de MDM.
    • Feu un seguiment de les eines de gestió remota que s'utilitzen habitualment i controleu les eines de tercers inusuals o no autoritzades. Per exemple, si s'utilitza l'Assistència ràpida i el vostre equip informàtic no depèn d'ell per a l'assistència remota, hauria d'activar una alarma.
  3. Formació en consciència de seguretat: pot semblar un tòpic, però els errors humans són constantment un dels motius principals dels atacs cibernètics amb èxit. La formació en consciència de seguretat pot marcar la diferència en aquest sentit, protegint-vos de la propera incompliment.
    • Recomanem que sigui centrat i rellevant per a les amenaces que es veuen a la natura. Per exemple, els casos de suplantació de la identitat informàtica a través de plataformes de comunicació com Microsoft Teams, Slack o fins i tot trucades telefòniques clàssiques estan en augment. Assegureu-vos que els vostres empleats sàpiguen com afrontar-ho.


Conclusió

  • VEILDrive combina simplicitat i sofisticació. Va ser interessant presenciar l'ús de les característiques clàssiques C2 en paral·lel amb C2 sobre OneDrive, així com l'ús de la persistència clàssica basada en tasques programades combinada amb l'execució de programari maliciós que un EDR de primer nivell no detecta.

  • Les característiques identificades com a part de la investigació i la investigació sobre amenaces eren interessants i ens van permetre entendre millor com funciona aquest actor d'amenaça, de quins serveis coneguts està abusant, com n'està abusant i amb quina finalitat.

  • La forma en què es va abusar de OneDrive per a la comunicació C2 a VEILDrive tenia característiques úniques. Tanmateix, el concepte general d'abús de OneDrive amb finalitats C2 ha anat augmentant durant els darrers mesos i és una cosa que cal tenir en compte.

  • L'accés inicial mitjançant spear-phishing a plataformes de comunicació com Microsoft Teams, Slack i serveis similars és cada cop més habitual.

  • Preveiem que serà encara més comú amb el pas del temps. Per tant, les mesures d'higiene i postura relacionades amb aquest aspecte (com s'ha esmentat a les Higiene Nuggets anteriors) són crucials.

  • Les eines d'administració remota ja són molt populars entre els actors d'amenaça. Es poden adoptar diferents enfocaments per minimitzar el potencial d'accés no autoritzat mitjançant aquestes eines. Des del nostre punt de vista, l'enfocament recomanat en aquesta àrea és la llista blanca (llista permesa) combinada amb un seguiment sòlid.

  • Preveiem que sorgiran més campanyes d'aquestes característiques, amb mètodes i característiques similars. Per tant, es recomana el seguiment continu i la recerca proactiva d'amenaces per a aquest tipus d'amenaces.


Per mantenir-vos al dia sobre investigacions, activitats i consultes sobre la caça d'amenaces, seguiu el compte X/Twitter de Team Axon ( @team__axon ).