NewPosThings Hacked & Exposed
Speravamo di riuscire a entrare in contatto con Arbor Networks, che un mese fa, ha pubblicato un interessante articolo riguardante NewPosThings, un malware per punti di vendita (PoS) e a condividere i dettagli di questa analisi con loro; purtroppo non siamo mai stati ricontattati, abbiamo pertanto deciso di rendere pubblica la nostra analisi, a distanza di un mese, per non compromettere eventuali operazioni di polizia.
Arbor Network ha analizzato il sample del malware (di cui vi riproponiamo i risultati), mentre noi di VoidSec ci siamo concentrati sull’analisi del server di comando e controllo.
Analisi del Malware
di Arbor Network
Il suo nome deriva da una stringa di percorso incorporata nel campione analizzato, C:\Users\Tom\documents\visual studio 2012\Projects\NewPosThings\Release\NewPosThings.pdb
Inizializzazione:
Il malware s’inizializza nel modo seguente:
imposta alcune flag di file nel Registro di sistema:
- “LowRiskFileTypes” in “HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Associations”
- “1806” in “HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0”
- Si copia nella cartella “%APPDATA%\Java\JavaUpdate.exe”
- Controlla se la versione in uso è a 64-bit, se lo è, termina la sua esecuzione con un MessageBox
- Termina i processi “JavaUpdate.exe”
- Imposta delle chiavi nel registro di sistema per garantire la sua persistenza al riavvio: (HKCU\Software\Microsoft\Windows\CurrentVersion\Run) come “Java Update Manager”
- Esegue una copia dell’eseguibile e termina la sua esecuzione
La copia continua:
- Cancella il file eseguibile originale
- Contatta il server di comando e controllo
- Cerca nel registro di sistema la presenza di password per l’applicativo VNC
- Avvia il thread di ricerca in memoria del tracciato delle carte di credito
- Avvia il thread di comunicazione con il server C2
- Avvia il thread di key logging
Vediamo ora la tipica comunicazione tra il client e il server:
cs è encodato in base64 e viene decodificato come “insert”
Il parametro p contiene:
- la versione di windows in uso
- il valore “+32”, hardcoded nel malware, “segnaposto” per la tipologia di architettura
- il nome del computer
il parametro m contiene il numero seriale del volume (usato come identificatore)
Una tipica risposta del server C2:
Tracciato 1 e 2 delle carte di credito:
Il thread è un ciclo infinito che “fotografa” i processi in uso dal sistema:
- Ignora i processi di sistema (svchost.exe, System, smss.exe, csrss.exe, winlogon.exe, lsass.exe, spoolsv.exe, alg.exe, wuauclt.exe)
- Ignora il proccesso del malware
- Analizza ogni byte in cerca di “^” o “=” separatori di campo utilizzati per i tracciati 1 e 2 delle carte di credito
- Se c’è una corrispondenza, vengono effettuati ulteriori controlli:
- Lavorando a ritroso dal separatore cerca 13-20 cifre che potrebbero essere il numero di conto primario (PAN).
- Controlla l’eventuale PAN con l’algoritmo di Luhn, utilizzato per convalidare i numeri delle carte di credito
- Verifica che la data di scadenza sia ragionevole: l’anno è compreso tra [20]13 e [20]19 e che i mesi inizino con uno 0 o 1
- Verifica se i caratteri dopo il separatore sono cifre
I dati crittografati sono memorizzati per il successivo upload al C2
Analisi del Server di Comando e Controllo
di VoidSec
Grazie all’analisi di Arbor Networks siamo stati in grado di “reperire” alcuni indirizzi di server C2, attualmente live (30/10/14).
Analizzando il server abbiamo riscontrato le seguenti vulnerabilià:
- Possibilità di eseguire bruteforce sulle credenziali amministrative
- Presenza dell’applicativo phpMyAdmin con possibilità di login via web
Possibilità di visualizzare pagine interne del server C2 senza essere loggati.
Questa vulnerabilità, anche conosciuta come: authentication bypass, è dovuta allo script che effettua il redirect dell’utente alla pagina di login.
<?php if (!isset($_SESSION["authenticated"])) { header("Location: auth.php");} ?> <title>Administration page</title> <form action="/admin/action" method="post"> ... form inputs ... </form> ... the rest of the administration page ...
Questo script non termina dopo la linea “header(“Location: auth.php”);”.
Un attaccante può accedere al suo contenuto utilizzando un client che non “segue” i redirect HTTP.
<?php if (!isset($_SESSION[auth])) { header("Location: auth.php"); exit(); } ?> <title>Administration page</title> <form action="/admin/action" method="post"> ... form inputs ... </form> ... the rest of the administration page ...
- possibile Time Blind SQL Injection sul parametro bots (POST)
Grazie a queste vulnerabilità, siamo riusciti a esportare il contenuto dei database e a visualizzare l’interfaccia amministrativa del server di comando e controllo che così si presenta:
Da questa interfaccia abbiamo raccolto tutte le informazioni possibili, riguardo i computer coinvolti, e abbiamo generato delle statistiche.
I due server C2 avevano in totale 80 bots
Il numero totale di log archiviati è di: 5240, una media di 65.5 log/bot
Nel momento in cui abbiamo effettuato l’accesso ai server C2 erano online 50 bots, 10 non possedevano uno status e 20 bots erano “deceduti”.
Versione e Architettura del Sistema Operativo
Paesi coinvolti nell’attacco
Dalle analisi effettuate sugli indirizzi IP dei bot, abbiamo potuto constatare come la “campagna” di malware sia stata portata avanti maggiormente in Australia e Canada, anche se non è da sottovalutare il dato della Gran Bretagna.
Non conosciamo il vettore di attacco con cui questo malware infetta i sistemi ma sappiamo che colpisce maggiormente i sistemi con Windows XP, perché più facili da attaccare (essendo rimasti senza update Microsoft), sono ancora presenti su larga scala in sistemi quali banche, punti vendita, Bancomat e ATM.
Sappiamo inoltre, dai nomi dei computer coinvolti (PoS Manager, Server, Central Office, Theatre, Kasse, GAS Station), che solo computer realmente connessi/che gestiscono PoS sono stati infettati, sono stati completamente ignorati PC consumer, dato che non potrebbero contenere LOG di carte di credito e per evitare di aumentare il detection rate da parte di software antivirus.
Pensiamo pertanto che gli autori del malware abbiano accesso diretto o possano compromettere computer di punti vendita specifici.
Update [03/12/14]:
Recentemente siamo riusciti, grazie alla segnalazione di Andrea Draghetti, a compromettere completamente uno dei server C&C utilizzati daggli attaccanti.
Rendiamo disponibili i source del web-panel: