Linux Forensics
Last updated
Last updated
Koristite Trickest da lako izgradite i automatizujete radne tokove pokretane od strane najnaprednijih alata zajednice. Pribavite pristup danas:
Prvo, preporučuje se da imate neki USB sa dobro poznatim binarnim datotekama i bibliotekama (možete jednostavno uzeti ubuntu i kopirati foldere /bin, /sbin, /lib, i /lib64), zatim montirajte USB i modifikujte env varijable da koristite te binarne datoteke:
Kada konfigurišete sistem da koristi dobre i poznate binarne datoteke, možete početi sa izvlačenjem nekih osnovnih informacija:
Dok prikupljate osnovne informacije, trebali biste proveriti čudne stvari kao što su:
Root procesi obično se pokreću sa niskim PID-ovima, pa ako pronađete root proces sa velikim PID-om, možete posumnjati
Proverite registrovane prijave korisnika bez shel-a unutar /etc/passwd
Proverite hash-eve lozinke unutar /etc/shadow
za korisnike bez shel-a
Da biste dobili memoriju pokrenutog sistema, preporučuje se korišćenje LiME. Da biste ga kompilirali, morate koristiti isti kernel koji koristi žrtvinska mašina.
Zapamtite da ne možete instalirati LiME ili bilo šta drugo na žrtvinskoj mašini jer će to napraviti nekoliko promena na njoj
Dakle, ako imate identičnu verziju Ubuntua, možete koristiti apt-get install lime-forensics-dkms
U drugim slučajevima, potrebno je preuzeti LiME sa github-a i kompilirati ga sa ispravnim kernel header-ima. Da biste dobili tačne kernel header-e žrtvinske mašine, možete jednostavno kopirati direktorijum /lib/modules/<kernel version>
na vašu mašinu, a zatim kompilirati LiME koristeći ih:
LiME podržava 3 formata:
Raw (svaki segment spojен zajedno)
Padded (isto kao raw, ali sa nulama u desnim bitovima)
Lime (preporučeni format sa metapodacima)
LiME se takođe može koristiti za slanje dump-a putem mreže umesto da se čuva na sistemu koristeći nešto poput: path=tcp:4444
Prvo, potrebno je da isključite sistem. Ovo nije uvek opcija, jer ponekad sistem može biti produkcijski server koji kompanija ne može priuštiti da isključi.
Postoje 2 načina za isključivanje sistema, normalno isključivanje i "isključivanje iz struje". Prvi će omogućiti da se procesi završe kao obično i da se fajl sistem sinhronizuje, ali će takođe omogućiti mogućem malware-u da uništi dokaze. Pristup "isključivanja iz struje" može doneti neki gubitak informacija (neće se mnogo informacija izgubiti jer smo već uzeli sliku memorije) i malware neće imati priliku da uradi bilo šta povodom toga. Stoga, ako sumnjate da može biti malware, jednostavno izvršite sync
komandu na sistemu i isključite iz struje.
Važno je napomenuti da pre nego što povežete svoj računar sa bilo čim vezanim za slučaj, morate biti sigurni da će biti montiran kao samo za čitanje kako biste izbegli modifikaciju bilo kojih informacija.
Imaging a disk image with no more data.
Koristite Trickest za lako kreiranje i automatizaciju radnih tokova pokretanih najnaprednijim alatima zajednice na svetu. Pribavite pristup danas:
Linux nudi alate za osiguranje integriteta sistemskih komponenti, što je ključno za uočavanje potencijalno problematičnih datoteka.
Sistemi zasnovani na RedHat-u: Koristite rpm -Va
za sveobuhvatnu proveru.
Sistemi zasnovani na Debian-u: dpkg --verify
za početnu verifikaciju, a zatim debsums | grep -v "OK$"
(nakon instalacije debsums
sa apt-get install debsums
) za identifikaciju bilo kakvih problema.
Pročitajte sledeću stranicu da biste saznali više o alatima koji mogu biti korisni za pronalaženje malware-a:
Da biste efikasno pretražili instalirane programe na sistemima Debian i RedHat, razmotrite korišćenje sistemskih logova i baza podataka zajedno sa ručnim proverama u uobičajenim direktorijumima.
Za Debian, proverite /var/lib/dpkg/status
i /var/log/dpkg.log
da biste dobili detalje o instalacijama paketa, koristeći grep
za filtriranje specifičnih informacija.
Korisnici RedHat-a mogu upititi RPM bazu podataka sa rpm -qa --root=/mntpath/var/lib/rpm
da bi prikazali instalirane pakete.
Da biste otkrili softver instaliran ručno ili van ovih menadžera paketa, istražite direktorijume kao što su /usr/local
, /opt
, /usr/sbin
, /usr/bin
, /bin
, i /sbin
. Kombinujte liste direktorijuma sa sistemskim komandama specifičnim za identifikaciju izvršnih datoteka koje nisu povezane sa poznatim paketima, poboljšavajući vašu pretragu za svim instaliranim programima.
Koristite Trickest da lako izgradite i automatizujete radne tokove pokretane od strane najnaprednijih alata zajednice. Pribavite pristup danas:
Zamislite proces koji je izvršen iz /tmp/exec i zatim obrisan. Moguće je izvući ga
Putanje gde se malver može instalirati kao usluga:
/etc/inittab: Poziva skripte inicijalizacije kao što su rc.sysinit, usmeravajući dalje na skripte za pokretanje.
/etc/rc.d/ i /etc/rc.boot/: Sadrže skripte za pokretanje usluga, pri čemu se potonja nalazi u starijim verzijama Linux-a.
/etc/init.d/: Koristi se u određenim verzijama Linux-a kao što je Debian za čuvanje skripti za pokretanje.
Usluge se takođe mogu aktivirati putem /etc/inetd.conf ili /etc/xinetd/, u zavisnosti od Linux varijante.
/etc/systemd/system: Direktorijum za skripte menadžera sistema i usluga.
/etc/systemd/system/multi-user.target.wants/: Sadrži linkove ka uslugama koje treba pokrenuti u višekorisničkom režimu.
/usr/local/etc/rc.d/: Za prilagođene ili usluge trećih strana.
~/.config/autostart/: Za automatske aplikacije specifične za korisnika, koje mogu biti skriveno mesto za malver usmeren na korisnike.
/lib/systemd/system/: Podrazumevane jedinice sistema koje obezbeđuju instalirani paketi.
Linux kernel moduli, često korišćeni od strane malvera kao komponenti rootkita, učitavaju se prilikom pokretanja sistema. Direktorijumi i datoteke kritične za ove module uključuju:
/lib/modules/$(uname -r): Sadrži module za trenutnu verziju kernela.
/etc/modprobe.d: Sadrži konfiguracione datoteke za kontrolu učitavanja modula.
/etc/modprobe i /etc/modprobe.conf: Datoteke za globalne postavke modula.
Linux koristi razne datoteke za automatsko izvršavanje programa prilikom prijavljivanja korisnika, potencijalno skrivajući malver:
/etc/profile.d/*, /etc/profile, i /etc/bash.bashrc: Izvršavaju se za bilo koju prijavu korisnika.
~/.bashrc, ~/.bash_profile, ~/.profile, i ~/.config/autostart: Datoteke specifične za korisnika koje se pokreću prilikom njihove prijave.
/etc/rc.local: Izvršava se nakon što su sve sistemske usluge pokrenute, označavajući kraj prelaska na višekorisničko okruženje.
Linux sistemi prate aktivnosti korisnika i događaje sistema kroz razne log datoteke. Ovi logovi su ključni za identifikaciju neovlašćenog pristupa, infekcija malverom i drugih bezbednosnih incidenata. Ključne log datoteke uključuju:
/var/log/syslog (Debian) ili /var/log/messages (RedHat): Zabeležavaju poruke i aktivnosti širom sistema.
/var/log/auth.log (Debian) ili /var/log/secure (RedHat): Beleže pokušaje autentifikacije, uspešne i neuspešne prijave.
Koristite grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log
za filtriranje relevantnih događaja autentifikacije.
/var/log/boot.log: Sadrži poruke o pokretanju sistema.
/var/log/maillog ili /var/log/mail.log: Logovi aktivnosti email servera, korisni za praćenje usluga vezanih za email.
/var/log/kern.log: Čuva poruke kernela, uključujući greške i upozorenja.
/var/log/dmesg: Sadrži poruke drajvera uređaja.
/var/log/faillog: Beleži neuspele pokušaje prijave, pomažući u istragama bezbednosnih proboja.
/var/log/cron: Logovi izvršenja cron poslova.
/var/log/daemon.log: Prati aktivnosti pozadinskih usluga.
/var/log/btmp: Dokumentuje neuspele pokušaje prijave.
/var/log/httpd/: Sadrži Apache HTTPD greške i logove pristupa.
/var/log/mysqld.log ili /var/log/mysql.log: Logovi aktivnosti MySQL baze podataka.
/var/log/xferlog: Beleži FTP prenose datoteka.
/var/log/: Uvek proverite neočekivane logove ovde.
Linux sistemski logovi i audit podsystemi mogu biti onemogućeni ili obrisani tokom upada ili incidenta sa malverom. Pošto logovi na Linux sistemima obično sadrže neke od najkorisnijih informacija o zlonamernim aktivnostima, napadači ih rutinski brišu. Stoga, prilikom ispitivanja dostupnih log datoteka, važno je tražiti praznine ili neuredne unose koji bi mogli biti indikacija brisanja ili manipulacije.
Linux održava istoriju komandi za svakog korisnika, smeštenu u:
~/.bash_history
~/.zsh_history
~/.zsh_sessions/*
~/.python_history
~/.*_history
Pored toga, komanda last -Faiwx
pruža listu prijava korisnika. Proverite je za nepoznate ili neočekivane prijave.
Proverite datoteke koje mogu dodeliti dodatne privilegije:
Pregledajte /etc/sudoers
za neočekivane privilegije korisnika koje su možda dodeljene.
Pregledajte /etc/sudoers.d/
za neočekivane privilegije korisnika koje su možda dodeljene.
Istražite /etc/groups
da identifikujete bilo kakva neobična članstva u grupama ili dozvole.
Istražite /etc/passwd
da identifikujete bilo kakva neobična članstva u grupama ili dozvole.
Neke aplikacije takođe generišu svoje logove:
SSH: Istražite ~/.ssh/authorized_keys i ~/.ssh/known_hosts za neovlašćene udaljene veze.
Gnome Desktop: Pogledajte ~/.recently-used.xbel za nedavno pristupane datoteke putem Gnome aplikacija.
Firefox/Chrome: Proverite istoriju pretraživača i preuzimanja u ~/.mozilla/firefox ili ~/.config/google-chrome za sumnjive aktivnosti.
VIM: Pregledajte ~/.viminfo za detalje o korišćenju, kao što su pristupane putanje datoteka i istorija pretrage.
Open Office: Proverite nedavni pristup dokumentima koji mogu ukazivati na kompromitovane datoteke.
FTP/SFTP: Pregledajte logove u ~/.ftp_history ili ~/.sftp_history za prenose datoteka koji bi mogli biti neovlašćeni.
MySQL: Istražite ~/.mysql_history za izvršene MySQL upite, što može otkriti neovlašćene aktivnosti u bazi podataka.
Less: Analizirajte ~/.lesshst za istoriju korišćenja, uključujući pregledane datoteke i izvršene komande.
Git: Istražite ~/.gitconfig i projekat .git/logs za promene u repozitorijumima.
usbrip je mali komad softvera napisan u čistom Python 3 koji analizira Linux log datoteke (/var/log/syslog*
ili /var/log/messages*
u zavisnosti od distribucije) za konstruisanje tabela istorije USB događaja.
Zanimljivo je znati sve USB uređaje koji su korišćeni i biće korisnije ako imate autorizovanu listu USB uređaja da pronađete "događaje kršenja" (korišćenje USB uređaja koji nisu na toj listi).
More examples and info inside the github: https://github.com/snovvcrash/usbrip
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Istražite /etc/passwd, /etc/shadow i bezbednosne logove za neobična imena ili naloge koji su kreirani i ili korišćeni u bliskoj blizini poznatih neovlašćenih događaja. Takođe, proverite moguće sudo brute-force napade. Pored toga, proverite datoteke kao što su /etc/sudoers i /etc/groups za neočekivane privilegije dodeljene korisnicima. Na kraju, potražite naloge sa bez lozinki ili lako pogađanim lozinkama.
Kada istražujete incidente sa malverom, struktura fajl sistema je ključni izvor informacija, otkrivajući kako redosled događaja, tako i sadržaj malvera. Međutim, autori malvera razvijaju tehnike za ometanje ove analize, kao što su modifikovanje vremenskih oznaka fajlova ili izbegavanje fajl sistema za skladištenje podataka.
Da biste se suprotstavili ovim anti-forenzičkim metodama, važno je:
Sprovesti temeljnu analizu vremenskih linija koristeći alate kao što su Autopsy za vizualizaciju vremenskih linija događaja ili Sleuth Kit's mactime
za detaljne podatke o vremenskim linijama.
Istražiti neočekivane skripte u sistemskom $PATH, koje mogu uključivati shell ili PHP skripte koje koriste napadači.
Istražiti /dev
za atipične fajlove, jer tradicionalno sadrži specijalne fajlove, ali može sadržati i fajlove povezane sa malverom.
Pretražiti skrivene fajlove ili direktorijume sa imenima kao što su ".. " (tačka tačka razmak) ili "..^G" (tačka tačka kontrola-G), koji mogu skrivati zlonamerni sadržaj.
Identifikovati setuid root fajlove koristeći komandu: find / -user root -perm -04000 -print
Ovo pronalazi fajlove sa povišenim dozvolama, koje napadači mogu zloupotrebiti.
Pregledati vremenske oznake brisanja u inode tabelama kako bi se uočila masovna brisanja fajlova, što može ukazivati na prisustvo rootkit-ova ili trojanaca.
Istražiti uzastopne inode za obližnje zlonamerne fajlove nakon identifikacije jednog, jer su možda postavljeni zajedno.
Proveriti uobičajene binarne direktorijume (/bin, /sbin) za nedavno modifikovane fajlove, jer bi ovi mogli biti izmenjeni od strane malvera.
Napomena da napadač može modifikovati vreme kako bi datoteke izgledale legitimno, ali ne može modifikovati inode. Ako otkrijete da datoteka pokazuje da je kreirana i modifikovana u isto vreme kao i ostale datoteke u istoj fascikli, ali je inode neočekivano veći, tada su vremenske oznake te datoteke modifikovane.
Da bismo uporedili verzije datotečnog sistema i precizirali promene, koristimo pojednostavljene git diff
komande:
Da bismo pronašli nove datoteke, uporedite dve fascikle:
Za izmenjen sadržaj, navedite promene ignorišući specifične linije:
Da otkrijete obrisane fajlove:
Opcije filtriranja (--diff-filter
) pomažu da se suzite na specifične promene kao što su dodati (A
), obrisani (D
) ili izmenjeni (M
) fajlovi.
A
: Dodati fajlovi
C
: Kopirani fajlovi
D
: Obrisani fajlovi
M
: Izmenjeni fajlovi
R
: Preimenovani fajlovi
T
: Promene tipa (npr., fajl u symlink)
U
: Neusaglašeni fajlovi
X
: Nepoznati fajlovi
B
: Pokvareni fajlovi
Knjiga: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides
Koristite Trickest da lako izgradite i automatizujete radne tokove pokretane od strane najnaprednijih alata zajednice. Dobijte pristup danas:
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)