Linux: LKMs – Loadable Kernel Modules (#12)

Bine ați revenit, dragii mei greenhorn hackers!

În acest ghid din seria de tutoriale Linux – elemente de bazădoresc să mă axez puțin pe LKMs (Loadable kernel modules), ce reprezintă cheia către administratorul Linux, deoarece acestea ne oferă abilitatea de a adăuga funcționalitate kernel-ului fără să fim nevoiți să-l recompilăm. Driverele video, cât și altele, pot fi adăugate kernel-ului fără să oprim sistemul, să îl recompilăm și reseta. Aceste module (LKMs) sunt critice pentru hackeri, deoarece dacă reușesc să-i facă pe administratori să încarce un nou modul în kernel-ul lor, nu doar că au pus stăpânire pe sistemul lor, ci pot controla chiar și raporturile sistemului cu privire la procese, port-uri, servicii, spațiu pe hdd s.a.m.d. Așadar, dacă oferim administratorului Linux un driver ,,nou și îmbunătățit”, în care integrăm rootkit, putem obține controlul sistemului acestuia și a kernel-ului. Cu alte cuvinte, sper că este destul de clar că înțelegerea LKMs este cheia către a fi un hacker cât mai efectiv. Continuăm să învățăm despre sistemele de operare linux. 🙂


Pasul 1: Ce este un Modul Kernel?

Kernelul este componenta de bază a oricărui sistem de operare Linux, inclusiv Kali, Ubuntu, Debian, CentOS s.a.m.d. Kernelul este ,,sistemul nervos central” a sistemului nostru de operare, ce controlează tot ceea ce face sistemul de operare, inclusiv interacțiiunile dintre componentele hardware și pornirea serviciilor necesare. Kernelul funcționează între aplicațiile utilizatorului și componentele hardware, precum CPU, memorie ram, HDDD etc.

Kernelul administrează tot ceea ce se întâmplă în sistemul nostru de operare, iar uneori, are nevoie de update-uri. Aceste update-uri pot include drivere pentru placa video sau chiar extensii ale sistemului. Aici intervine LKM. Putem încărca și descărca simplu module kernel.

Pasul 2: Verificarea Kernelului.

Primul lucru pe care dorim să îl verificăm este să vedem dacă kernelul de pe sistemul nostru rulează. Sunt două moduri prin care putem face asta. Scriem:


  • uname -a

Observați că se utilizează versiunea 4.9.0, însă arhitectura sa este făcută pentru x86_64. Putem obține această informație utilizând comanda ,,cat”:

  • cat /proc/version

Pasul 3: ,,Reglarea” Kernel cu Sysctl

Uneori, un administrator Linux va dori să ,,regleze” kernelul. Asta  include schimbarea alocărilor de memorie, activarea funcției de rețea, sau chiar securizarea kernelului pentru a face viața un iad hackerilor.



Cu kernelele Linux moderne, avem comanda sysctl, pentru a schimba opțiunile kernelului. Toate aceste schimbări făcute prin comanda sysctl, vor dura doar până resetăm sistemul. Pentru a face aceste schimbări permanente, fișierul de configurare pentru sysctl, trebuie editat în /etc/sysctl.conf.

Trebuie să fim atenți când utilizăm comanda sysctl, deoarece dacă nu avem cunoștințele și experiența necesară, putem face ca sistemul nostru să nu mai pornească. Haideți să ne uităm puțin și la conținutul sysctl.

sysctl -a |less

Pentru a vedea fișierul de configurare pentru sysctl, mergem în/etc/sysctl.conf.

less /etc/sysctl.conf

Unul dintre modurile în care putem folosi sysctl în hacking este pentru a activa ipforwarding (net.ipv4.conf.default.forwarding) pentru un atac de tipul man-in-the-middle. Dacă privim dintr-o altă perspectivă, putem dezactiva ICMP echo requests (net.ipv4.icmp_echo_ignore_all) pentru a face mai dificil (dar nu imposibil), pentru hackeri să ne găsească sistemul.

Pasul 4: Modulele Kernel

Pentru administrarea unui Kernel, Linux are două metode. Prima, și cea mai veche, o reprezintă utilizarea unui grup de comenzi construite în jurul comenzii insmod. Aici, o să folosim una dintre acestea –lsmod– pentru a lista modulele instalate în Kernel.

  • lsmod

Putem încărca sau insera un modul cu insmod sau să eliminăm unul cu rmmod.



Pasul 5: Modprobe

Cele mai noi distribuții Linux, au trecut la comanda modprobe pentru administrarea LKM. Pentru a vedea ce module sunt instalate în Kernelul nostru, tastăm:

  • modprobe -l

Pentru a vedea toate comenzile modprobe, tastăm modprobe -h.

Pentru a elimina un modul, utilizăm schimbătorul -r cu modprobe.

  • modprobe -r

Un avantaj extraordinar al modprobe îl reprezintă faptul că înțelege dependențele, opțiunile, procedurile de instalare și dezinstalare a modulelor kernel.

Pentru a vedea fișierele de configurare a modulelor instalate, listăm conținutul directorului /etc/modprobe.d/

  • ls -l /etc/modprobe.d/

Țineți minte! Modulele LKM reprezintă o comoditate pentru un utilizator/administrator Linux, dar reprezintă o slăbiciune majoră în securitate, iar un hacker profesionist ar trebuie să le cunoască perfect.

Până data viitoare, să ne citim cu bine! 🙂



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