Windows Defender vs. Rubeus: ¿Quién ganará?

Windows Defender vs. Rubeus: Qui guanyarà?

Celia Catalán

Introducció

A l'edició anterior, vam discutir com evadir Rubeus comprenent i analitzant les regles YARA que actuen com a base de detecció. No obstant això, això no va ser suficient, ja que en intentar executar l'eina en un entorn amb Windows Defender, aquesta seguia sent detectada. Això es deu al fet que encara hi ha mesures de seguretat addicionals que s'han de superar, i precisament això és el que abordarem en aquesta entrada.

Objectiu

Continuem enfocant-nos en l'evasió de l'anàlisi estàtic del binari, per la qual cosa l'estratègia principal continua sent la seva modificació. Windows Defender no proporciona un llistat de les regles de detecció de la mateixa manera que les regles YARA, la qual cosa fa que el procés de detecció i evasió sigui més tediós i desafiador.

Per a aquesta tasca, utilitzarem una eina desenvolupada per Daniel Duggan anomenada ThreatCheck. Aquesta eina explota el binari d'escaneig de Windows Defender per realitzar múltiples consultes, utilitzant un enfocament basat en l'algorisme de "divideix i venceràs".


El procés és relativament simple: el binari es divideix en meitats, i cada segment es escaneja fins a identificar la porció marcada per Windows Defender com a maliciosa. A continuació, aquesta porció es subdivideix en fragments més petits, repetint el procés fins a localitzar la zona exacta que provoca la detecció. A diferència de les regles YARA, que retornen totes les execucions marcades com a malicioses, ThreatCheck no actua d'aquesta manera. Un cop es modifica la primera detecció, si hi ha més segments problemàtics, serà necessari repetir l'escaneig fins que el binari quedi completament net.

Exemple


Per a l'exemple següent, utilitzarem el mateix binari de Rubeus després d'aplicar les regles yara. Abans de començar amb l'escaneig, s'ha de desactivar el Windows Defender, així no escanejarà i eliminarà el binari.

El format d'execució de l'eina és el següent 


A la primera iteració detecta una zona del binari que fa múltiples referències a la paraula “Ticket” en els noms de les funcions.


Cal tenir en compte que determinats canvis poden comportar canvis en la funcionalitat de l'aplicació. A la següent imatge es pot observar que canviant “ticket” per “bolet” es modifica un paràmetre inicial. 

La versió final del Rubeus no contemplarà /ticket, sinó /boletu per a les execucions posteriors. Cal tenir en compte el “case sensitive” i modificar “ticket” i “Ticket” respectivament amb l'opció seleccionada.



Un cop realitzada la modificació, Rubeus ja no és detectat a la secció de bytes anterior i novament apareix una nova detecció per trucades a les funcions de DiffieHellMan. Modificant la paraula “DiffieHellmanKey” per “DiffieHellmanClau” s'hauria d'evitar la detecció.


Finalment es mostra un altre segment de bytes detectat com a maliciós fent referència a tiquets “.kirbi”. Aquesta extensió és altament detectable, per la qual cosa modificant el literal de sortida a “.rosa” s'aconsegueix evadir.



Una nova iteració sobre el binari hauria de marcar Rubeus com un binari no detectable. Si activem Windows Defender i li afegim l'opció d'escaneig d'AMSI, en aquest cas no aconseguirà trobar cap detecció, quedant Rubeus totalment evadit al laboratori plantejat.


Si en algun punt del procés s'obté el següent resultat o similar, es deu al mode de compilació utilitzat a Visual Studio.


Modificant a x64 en mode "Release" evitaríem la detecció. Això es deu al fet que el mode debug deixa diferents traces que poden ser fàcilment detectables pels antivirus si hi ha alguna regla en elles.


Conclusions

En aquesta entrega hem explorat diverses tècniques per realitzar una evasió efectiva de Windows Defender, un dels sistemes de protecció més utilitzats en entorns corporatius i personals. El nostre enfocament ha estat dirigit a l'eliminació d'Indicadors de Compromís (IOC) i traces característiques d'eines conegudes, les quals solen ser ràpidament identificades i bloquejades en sistemes protegits. No obstant això, en escenaris del món real, la complexitat dels mecanismes de detecció és considerablement més gran, cosa que fa que aquestes modificacions bàsiques resultin insuficients davant les solucions avançades d'Antivirus (AV) i, especialment, les d'Endpoint Detection and Response (EDR).
Per comprendre millor aquests desafiaments, és fonamental analitzar els factors que dificulten l'evasió en entorns amb solucions de seguretat avançades:

  • Regles de detecció propietàries: Cada producte de seguretat posseeix un conjunt de regles dissenyades per identificar activitats sospitoses. Aquestes regles no són públiques i varien entre fabricants, la qual cosa significa que el que funciona contra una solució pot fallar davant d'una altra. Moltes d'aquestes regles s'actualitzen de manera contínua, fent que tècniques d'evasió prèviament funcionals puguin esdevenir obsoletes en poc temps. A més, algunes solucions utilitzen intel·ligència artificial per identificar variacions en els patrons d'atac, la qual cosa les fa encara més difícils d'evasar.
  • Anàlisi dinàmic i heurístic: A més de l'ús de signatures per detectar amenaces, els EDR moderns incorporen tecnologies d'anàlisi de comportament. Això significa que no només busquen patrons coneguts en els fitxers executables, sinó que també supervisen la seva interacció amb el sistema operatiu en temps real. Per exemple, si una eina intenta injectar codi en un altre procés o accedir a credencials, és possible que s'activi una alerta sense necessitat d'una firma específica. Fins i tot, algunes solucions generen entorns controlats o sandboxes per executar potencials amenaces i analitzar el seu comportament abans de permetre la seva execució en el sistema real.
Donada l'evolució d'aquests mecanismes de defensa, han sorgit eines d'ofuscació que permeten modificar binaris i scripts per fer-los menys detectables. Un exemple d'això és InvisibilityCloak, una eina dissenyada específicament per a entorns en C# que permet manipular projectes i generar binaris modificats amb l'objectiu de reduir la probabilitat de detecció per part de solucions AV i EDR.
Malgrat comptar amb eines d'automatització, l'evasió efectiva de defenses requereix alguna cosa més que simplement aplicar tècniques conegudes. És crucial entendre en profunditat tant el funcionament de les eines que es volen emprar com l'entorn en què s'executaran. A més, és imprescindible mantenir-se actualitzat sobre els avenços en detecció i desenvolupar enfocaments dinàmics que permetin adaptar-se contínuament a l'evolució de les solucions de seguretat. En molts casos, la combinació de diverses tècniques i la prova constant en entorns de laboratori poden marcar la diferència entre ser detectat o passar desapercebut.

Axel Losantos, Consultor Sènior de Seguretat Ofensiva a Zerolynx (per Cybertix).
Tornar al bloc

Deixa un comentari

Tingueu en compte que els comentaris s'han d'aprovar abans que es publiquin.