Linux Forensics
Last updated
Last updated
Gebruik Trickest om maklik te bou en outomatiese werkvloei te skep wat aangedryf word deur die wêreld se mees gevorderde gemeenskapstoestelle. Kry Toegang Vandag:
Eerstens, dit word aanbeveel om 'n USB te hê met goeie bekende binêre en biblioteke daarop (jy kan net ubuntu kry en die vouers /bin, /sbin, /lib, en /lib64 kopieer), dan monteer die USB, en wysig die omgewing veranderlikes om daardie binêre te gebruik:
Sodra jy die stelsel gekonfigureer het om goeie en bekende binaire te gebruik, kan jy begin inligting te onttrek:
Terwyl jy die basiese inligting verkry, moet jy vir vreemde dinge kyk soos:
Root prosesse loop gewoonlik met lae PID's, so as jy 'n root proses met 'n groot PID vind, kan jy vermoed
Kontroleer geregistreerde aanmeldings van gebruikers sonder 'n shell binne /etc/passwd
Kontroleer vir wagwoord-hashes binne /etc/shadow
vir gebruikers sonder 'n shell
Om die geheue van die lopende stelsel te verkry, word dit aanbeveel om LiME te gebruik. Om dit te compileer, moet jy die dieselfde kern gebruik wat die slagoffer masjien gebruik.
Onthou dat jy nie LiME of enige ander ding op die slagoffer masjien kan installeer nie, aangesien dit verskeie veranderinge daaraan sal maak
So, as jy 'n identiese weergawe van Ubuntu het, kan jy apt-get install lime-forensics-dkms
gebruik
In ander gevalle moet jy LiME van github aflaai en dit compileer met die korrekte kernkoppe. Om die presiese kernkoppe van die slagoffer masjien te verkry, kan jy net die gids /lib/modules/<kernel version>
na jou masjien kopieer, en dan compileer LiME met hulle:
LiME ondersteun 3 formate:
Raw (elke segment saamgevoeg)
Padded (dieselfde as raw, maar met nulles in die regter bits)
Lime (aanbevole formaat met metadata)
LiME kan ook gebruik word om die dump via netwerk te stuur in plaas van om dit op die stelsel te stoor met iets soos: path=tcp:4444
Eerstens, jy sal die stelsel moet afsluit. Dit is nie altyd 'n opsie nie, aangesien sommige stelsels 'n produksieserver kan wees wat die maatskappy nie kan bekostig om af te sluit.
Daar is 2 maniere om die stelsel af te sluit, 'n normale afsluiting en 'n "trek die stekker" afsluiting. Die eerste een sal die prosesse toelaat om soos gewoonlik te beëindig en die filesystem te synchroniseer, maar dit sal ook die moontlike malware toelaat om bewyse te vernietig. Die "trek die stekker" benadering kan sekere inligtingverlies meebring (nie veel van die inligting gaan verlore gaan nie, aangesien ons reeds 'n beeld van die geheue geneem het) en die malware sal nie enige geleentheid hê om iets daaroor te doen nie. Daarom, as jy suspekteer dat daar 'n malware mag wees, voer net die sync
opdrag op die stelsel uit en trek die stekker.
Dit is belangrik om te noem dat voor jy jou rekenaar aan enigiets wat met die saak verband hou, koppel, jy moet seker wees dat dit as slegs lees gemonteer gaan word om te verhoed dat enige inligting gewysig word.
Beeld 'n skyfbeelding met geen verdere data nie.
Gebruik Trickest om maklik werkvloei te bou en te automate wat aangedryf word deur die wêreld se mees gevorderde gemeenskapstools. Kry Toegang Vandag:
Linux bied gereedskap om die integriteit van stelselkome te verseker, wat noodsaaklik is om potensieel problematiese lêers op te spoor.
RedHat-gebaseerde stelsels: Gebruik rpm -Va
vir 'n omvattende kontrole.
Debian-gebaseerde stelsels: dpkg --verify
vir aanvanklike verifikasie, gevolg deur debsums | grep -v "OK$"
(na die installering van debsums
met apt-get install debsums
) om enige probleme te identifiseer.
Lees die volgende bladsy om meer te leer oor gereedskap wat nuttig kan wees om malware te vind:
Malware AnalysisOm effektief te soek na geïnstalleerde programme op beide Debian en RedHat stelsels, oorweeg om stelsellogs en databasisse saam met handmatige kontroles in algemene gidse te benut.
Vir Debian, ondersoek /var/lib/dpkg/status
en /var/log/dpkg.log
om besonderhede oor pakketinstallasies te verkry, met grep
om vir spesifieke inligting te filter.
RedHat gebruikers kan die RPM-databasis ondervra met rpm -qa --root=/mntpath/var/lib/rpm
om geïnstalleerde pakkette te lys.
Om sagteware wat handmatig of buite hierdie pakketbestuurders geïnstalleer is, te ontdek, verken gidse soos /usr/local
, /opt
, /usr/sbin
, /usr/bin
, /bin
, en /sbin
. Kombineer gidse met stelselspesifieke opdragte om uitvoerbare lêers te identifiseer wat nie geassosieer word met bekende pakkette nie, wat jou soektog na alle geïnstalleerde programme verbeter.
Gebruik Trickest om maklik werkvloei te bou en te automate wat aangedryf word deur die wêreld se mees gevorderde gemeenskapstools. Kry Toegang Vandag:
Stel jou 'n proses voor wat vanaf /tmp/exec uitgevoer is en toe verwyder is. Dit is moontlik om dit te onttrek.
Paaie waar 'n malware as 'n diens geïnstalleer kan word:
/etc/inittab: Roep inisialisering skripte aan soos rc.sysinit, wat verder na opstart skripte lei.
/etc/rc.d/ en /etc/rc.boot/: Bevat skripte vir diens opstart, laasgenoemde word in ouer Linux weergawes gevind.
/etc/init.d/: Gebruik in sekere Linux weergawes soos Debian om opstart skripte te stoor.
Dienste kan ook geaktiveer word via /etc/inetd.conf of /etc/xinetd/, afhangende van die Linux variasie.
/etc/systemd/system: 'n Gids vir stelsels en diensbestuurder skripte.
/etc/systemd/system/multi-user.target.wants/: Bevat skakels na dienste wat in 'n multi-gebruiker runlevel begin moet word.
/usr/local/etc/rc.d/: Vir pasgemaakte of derdeparty dienste.
~/.config/autostart/: Vir gebruiker-spesifieke outomatiese opstart toepassings, wat 'n wegsteekplek vir gebruiker-teiken malware kan wees.
/lib/systemd/system/: Stelselswye standaard eenheid lêers verskaf deur geïnstalleerde pakkette.
Linux kernel modules, dikwels deur malware as rootkit komponente gebruik, word by stelselaanvang gelaai. Die gidse en lêers wat krities is vir hierdie modules sluit in:
/lib/modules/$(uname -r): Hou modules vir die lopende kernel weergawe.
/etc/modprobe.d: Bevat konfigurasielêers om module laai te beheer.
/etc/modprobe en /etc/modprobe.conf: Lêers vir globale module instellings.
Linux gebruik verskeie lêers om programme outomaties uit te voer by gebruiker aanmelding, wat moontlik malware kan huisves:
/etc/profile.d/*, /etc/profile, en /etc/bash.bashrc: Word uitgevoer vir enige gebruiker aanmelding.
~/.bashrc, ~/.bash_profile, ~/.profile, en ~/.config/autostart: Gebruiker-spesifieke lêers wat by hul aanmelding loop.
/etc/rc.local: Loop nadat alle stelseldienste begin het, wat die einde van die oorgang na 'n multi-gebruiker omgewing aandui.
Linux stelsels volg gebruiker aktiwiteite en stelsel gebeurtenisse deur verskeie log lêers. Hierdie logs is noodsaaklik om ongeoorloofde toegang, malware infeksies, en ander sekuriteitsvoorvalle te identifiseer. Sleutel log lêers sluit in:
/var/log/syslog (Debian) of /var/log/messages (RedHat): Vang stelselswye boodskappe en aktiwiteite.
/var/log/auth.log (Debian) of /var/log/secure (RedHat): Registreer autentikasie pogings, suksesvolle en mislukte aanmeldings.
Gebruik grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log
om relevante autentikasie gebeurtenisse te filter.
/var/log/boot.log: Bevat stelsel opstart boodskappe.
/var/log/maillog of /var/log/mail.log: Log e-pos bediener aktiwiteite, nuttig vir die opsporing van e-pos verwante dienste.
/var/log/kern.log: Stoor kernel boodskappe, insluitend foute en waarskuwings.
/var/log/dmesg: Hou toestel bestuurder boodskappe.
/var/log/faillog: Registreer mislukte aanmeldingspogings, wat help in sekuriteitsbreuk ondersoeke.
/var/log/cron: Log cron taak uitvoerings.
/var/log/daemon.log: Volg agtergrond diens aktiwiteite.
/var/log/btmp: Dokumenteer mislukte aanmeldingspogings.
/var/log/httpd/: Bevat Apache HTTPD fout en toegang logs.
/var/log/mysqld.log of /var/log/mysql.log: Log MySQL databasis aktiwiteite.
/var/log/xferlog: Registreer FTP lêer oordrag.
/var/log/: Kontroleer altyd vir onverwagte logs hier.
Linux stelsel logs en oudit subsisteme mag gedeaktiveer of verwyder word in 'n indringing of malware voorval. Omdat logs op Linux stelsels oor die algemeen sommige van die nuttigste inligting oor kwaadwillige aktiwiteite bevat, verwyder indringers gereeld hulle. Daarom, wanneer beskikbare log lêers ondersoek word, is dit belangrik om te soek na gapings of uit die orde inskrywings wat 'n aanduiding van verwydering of manipulasie mag wees.
Linux hou 'n opdrag geskiedenis vir elke gebruiker, gestoor in:
~/.bash_history
~/.zsh_history
~/.zsh_sessions/*
~/.python_history
~/.*_history
Boonop bied die last -Faiwx
opdrag 'n lys van gebruiker aanmeldings. Kontroleer dit vir onbekende of onverwagte aanmeldings.
Kontroleer lêers wat ekstra regte kan toeken:
Hersien /etc/sudoers
vir onverwagte gebruiker regte wat moontlik toegeken is.
Hersien /etc/sudoers.d/
vir onverwagte gebruiker regte wat moontlik toegeken is.
Ondersoek /etc/groups
om enige ongewone groep lidmaatskappe of toestemmings te identifiseer.
Ondersoek /etc/passwd
om enige ongewone groep lidmaatskappe of toestemmings te identifiseer.
Sommige toepassings genereer ook hul eie logs:
SSH: Ondersoek ~/.ssh/authorized_keys en ~/.ssh/known_hosts vir ongeoorloofde afstandverbindinge.
Gnome Desktop: Kyk in ~/.recently-used.xbel vir onlangs toeganklike lêers via Gnome toepassings.
Firefox/Chrome: Kontroleer blaargeskiedenis en aflaaie in ~/.mozilla/firefox of ~/.config/google-chrome vir verdagte aktiwiteite.
VIM: Hersien ~/.viminfo vir gebruik besonderhede, soos toeganklike lêer paaie en soek geskiedenis.
Open Office: Kontroleer vir onlangse dokument toegang wat moontlik gecompromitteerde lêers aandui.
FTP/SFTP: Hersien logs in ~/.ftp_history of ~/.sftp_history vir lêer oordragte wat moontlik ongeoorloofde is.
MySQL: Ondersoek ~/.mysql_history vir uitgevoerde MySQL vrae, wat moontlik ongeoorloofde databasis aktiwiteite onthul.
Less: Analiseer ~/.lesshst vir gebruik geskiedenis, insluitend gesiene lêers en uitgevoerde opdragte.
Git: Ondersoek ~/.gitconfig en projek .git/logs vir veranderinge aan repositories.
usbrip is 'n klein stuk sagteware geskryf in suiwer Python 3 wat Linux log lêers (/var/log/syslog*
of /var/log/messages*
afhangende van die distro) ontleed om USB gebeurtenis geskiedenis tabelles te bou.
Dit is interessant om alle USB's wat gebruik is te weet en dit sal meer nuttig wees as jy 'n gemagtigde lys van USB's het om "oortreding gebeurtenisse" (die gebruik van USB's wat nie binne daardie lys is nie) te vind.
More examples and info inside the github: https://github.com/snovvcrash/usbrip
Use Trickest om maklik werkvloei te bou en te automate wat deur die wêreld se mees gevorderde gemeenskapstools aangedryf word. Kry Toegang Vandag:
Ondersoek die /etc/passwd, /etc/shadow en veiligheidslogboek vir ongewone name of rekeninge wat geskep en of gebruik is in nabyheid van bekende ongeoorloofde gebeurtenisse. Kontroleer ook moontlike sudo brute-force aanvalle. Boonop, kyk na lêers soos /etc/sudoers en /etc/groups vir onverwagte voorregte wat aan gebruikers gegee is. Laastens, soek na rekeninge met geen wagwoorde of maklik geraadpleegde wagwoorde.
Wanneer malware-voorvalle ondersoek word, is die struktuur van die lêerstelsel 'n cruciale bron van inligting, wat beide die volgorde van gebeurtenisse en die inhoud van die malware onthul. egter, malware-skeppers ontwikkel tegnieke om hierdie analise te hindernis, soos om lêer tydstempels te verander of die lêerstelsel te vermy vir datastoor.
Om hierdie anti-forensiese metodes teë te werk, is dit noodsaaklik om:
'n deeglike tydlynanalise uit te voer met behulp van gereedskap soos Autopsy vir die visualisering van gebeurtenistydlyne of Sleuth Kit's mactime
vir gedetailleerde tydlyn data.
Ondersoek ongewone skripte in die stelsel se $PATH, wat dalk skulp of PHP-skripte insluit wat deur aanvallers gebruik word.
Ondersoek /dev
vir ongewone lêers, aangesien dit tradisioneel spesiale lêers bevat, maar dalk malware-verwante lêers kan huisves.
Soek na versteekte lêers of gidse met name soos ".. " (dot dot space) of "..^G" (dot dot control-G), wat kwaadwillige inhoud kan verberg.
Identifiseer setuid root lêers met die opdrag: find / -user root -perm -04000 -print
Dit vind lêers met verhoogde voorregte, wat deur aanvallers misbruik kan word.
Hersien verwydering tydstempels in inode-tabelle om massalêer verwyderings op te spoor, wat moontlik die teenwoordigheid van rootkits of trojans aandui.
Inspekteer opeenvolgende inodes vir nabye kwaadwillige lêers nadat een geïdentifiseer is, aangesien hulle dalk saam geplaas is.
Kontroleer algemene binêre gidse (/bin, /sbin) vir onlangs gewysigde lêers, aangesien hierdie dalk deur malware verander kan wees.
Let daarop dat 'n aanvaller die tyd kan wysig om lêers legitiem te laat lyk, maar hy kan nie die inode wysig nie. As jy vind dat 'n lêer aandui dat dit op die selfde tyd as die res van die lêers in die selfde gids geskep en gewysig is, maar die inode onverwagte groter is, dan is die tydstempels van daardie lêer gewysig.
Om lêerstelsels te vergelyk en veranderinge te identifiseer, gebruik ons vereenvoudigde git diff
opdragte:
Om nuwe lêers te vind, vergelyk twee gidse:
Vir gewysigde inhoud, lys veranderinge terwyl spesifieke lyne geïgnoreer word:
Om verwyderde lêers te ontdek:
Filter opsies (--diff-filter
) help om te fokus op spesifieke veranderinge soos bygevoeg (A
), verwyder (D
), of gewysig (M
) lêers.
A
: Bygevoegde lêers
C
: Gekopieerde lêers
D
: Verwyderde lêers
M
: Gewysigde lêers
R
: Hernoemde lêers
T
: Tipe veranderinge (bv. lêer na symlink)
U
: Onvervlegte lêers
X
: Onbekende lêers
B
: Gebroke lêers
Boek: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)