Linux: Samba (#22)

Bine ați revenit, dragii mei greenhorn hackers!

Cei care folosiți Windows într-un mediu LAN, știți deja că mașinile Windows pot partaja directoare, fișiere, imprimante etc., utilizând protocolul ,,shares”. Acest protocol datează din anii 1980, când firma de calculatoare dominantă, IBM, a dezvoltat o modalitate prin care computerele să comunice prin LAN, folosind doar nume de computer, nicidecum adrese MAC sau IP.

În realitate, Microsoft și Intel au elaborat un protocol similar pentru partajarea de fișiere, inițial numit NetBIOS, și eventual redenumit Server Message Block (SMB). Până în 1992, Andrew Tridgell, a decompilat SMB pentru Linux / Unix (inclusiv Apple Mac OS X) și l-a numit Samba. Este o implementare SMB a serverului și nu necesită instalarea de software pe client. Samba oferă:

Distribuire de fișiere
Imprimare în rețea
Autentificare și autorizare
Anunț de servicii (de navigare)



Funcția Samba este implementată de doi daemoni, smbd și nmbd. Acești daemoni (servicii) sunt instalați și rulează pe aproape orice distribuție de Unix și Linux. Samba, ca și Windows NetBios / SMB, rulează pe porturile 135, 137 și 445.

La fel ca SMB-ul din Windows, Samba din Linux a fost unul dintre protocoalele cele mai slabe și cele mai des exploatate. Există o listă lungă de vulnerabilități și exploit-uri care profită de Samba din Linux. Când doresc să exploatez un sistem Linux, unul dintre primele lucruri pe care le testez este Samba. Samba 3.6.3 și versiunile anterioare permit utilizatorilor anonimi să obțină acces root printr-o procedură numită procedura apelului la distanță.

Cu cât cunoaștem și înțelegem mai bine Samba, cu atât vom fi niște administratori Linux mai buni, cât și niște hackeri mai iscusiți. Să ne petrecem puțin timp pentru a înțelege acest protocol esențial și, adesea, foarte vulnerabil în Linux.


Pasul 1: Localizăm Samba

Pentru a găsi fișierele Samba în Kali, haideți să tastăm următoarea comandă:

  • locate smb

Când facem acest lucru, vom vedea zeci de fișiere cu SMB sau Samba în numele lor, inclusiv numeroase module Metasploit pentru exploatarea Samba. În partea de sus a listei este fișierul principal de configurare pentru Samba, /etc/samba/smb.conf. Ca aproape orice aplicație sau daemon din Linux, există un fișier de configurare localizat în directorul /etc. Acestea sunt fișiere text simple care pot fi editate și salvate pentru a modifica configurația aplicației sau a daemonului. Samba nu este diferit.

Să-l deschidem acum cu editorul de text ales de noi. În acest caz, o să folosesc Leafpad în Kali.

  • kali > leafpad /etc/samba/smb.conf

După cum putem vedea, acest fișier de configurare este bine comentat. Pentru mai multe informații despre configurarea Samba, putem tasta:

  • kali > man samba

Ar trebui să subliniez acum că acest fișier de configurare utilizează două tipuri diferite de comentarii. Primul este cunoscutul “#”, dar, de asemenea, mai avem și “;”. Le vom întâlni pe ambele în acest fișier de configurare.


Pasul 2: Configurare Samba

Samba are o comandă ce ne permite să testăm sintaxa fișierului nostru de configurare. Aceasta este:

  • kali > testparm -v

Când introducem această comandă, se verifică parametrii și sintaxa noastră, pentru a vedea dacă acestea sunt funcționale.

Este important să reținem că ori de câte ori facem modificări în acest fișier de configurare, trebuie să repornim Samba pentru ca acestea să fie implementate. Putem face acest lucru cu:

  • kali > service smb restart

Pasul 3: Crearea unui utilizator Samba

Samba are propriul sistem de autentificare a parolelor. Putem crea utilizatori cu acces la Samba, dacă există, în fișierul /etc /passwd (cu alte cuvinte, ei sunt un utilizator pe sistem) cu comanda:

  • kali > smbpasswd -a <username>

După cum putem vedea, m-am adăugat (Arhitectul), la lista de utilizatori Samba cu parola mea.


Pasul 4: Setarea grupului de lucru

Dacă dorim să ne conectăm la grupul de lucru de la o mașină Windows, vom avea nevoie de numele grupului de lucru Windows. În “Global Settings”, putem vedea că setarea implicită este setată la grupul de lucru, dar, desigur, acest lucru ar trebui să fie setat pe numele grupului de lucru Windows la care va fi conectat Samba.

Pasul 5: Cont / Logare

Haideți să navigăm în secțiunea ,,Global Settings” în secțiunea “Debugging / Accounting”.

Aici vedem că putem seta locația fișierului log:

  • log file = /var/log/samba/log.%m

Dimensiunea maximă a jurnalului (KB):

  • max log size = 1000

Și dacă folosim doar syslog pentru a centraliza logarea noastră la un sistem de logare dedicat:

  • syslog only = no

Printre multe alte lucruri.

Pasul 6: Autentificare

Dacă navigăm puțin mai jos în setările globale, ajungem la secțiunea ,,Autentificare”.


Aici putem seta ce tip de server Samba va fi:

  • server role = standalone server

Dacă Samba ar trebui să respecte / să utilizeze module de autentificare (PAM):

  • obey pam restrictions = yes

Dacă Samba sincronizează parolele cu sistemul de parole Linux / Unix:

  • unix password sync = yes

Și în cele din urmă, modul în care Samba se ocupă de setarea parolei.

Pasul 7: Variabile Samba

Vom observa că în fișierul de configurare Samba sunt folosite variabile care încep cu “%”. De exemplu, în secțiunea de logare de mai sus, am văzut această linie:

  • log file = /var/log/samba/log.%m

“% m”-ul de la sfârșit reprezintă o variabilă. Dacă folosim tabelul de mai jos, putem vedea că “% m” reprezintă “Numele NetBIOS al clientului”. Dacă numele NetBIOS al calculatorului ar fi ,,Blackweb”, aceasta ar însemna că logurile ar fi găsite pentru acel sistem la:

  • log file = /var/log/samba/log.Blackweb

Când am înlocuit variabila cu valoarea numelui NetBIOS.

Deși există mult mai multe modificări pe care le putem face în acest fișier de configurare, în multe cazuri setarea implicită va fi suficientă, deși nu este optimă. Voi face un al doilea tutorial Samba în viitorul apropiat, unde vom configura Samba pentru partajarea optimă a fișierelor, așa că nu uitați să reveniți, dragii mei greenhorn hackers.



0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments