Linux Bestandssysteem: Basis voor Hackers

Als je serieus wilt worden in cybersecurity, ontkom je niet aan Linux. Meer dan 90% van alle servers draait op Linux, vrijwel alle hacking tools zijn gebouwd voor Linux, en de meeste pentest-distributies zoals Kali Linux en Parrot OS zijn Linux-gebaseerd. Maar voordat je tools als nmap of metasploit gaat gebruiken, moet je eerst de basis begrijpen: het bestandssysteem. Zonder kennis van hoe Linux bestanden en mappen organiseert, ben je als een inbreker die niet weet waar de deuren zitten.

Waarom Linux?

Windows is het populairste desktop-besturingssysteem, maar in de wereld van servers, netwerken en security is Linux de onbetwiste koning. Daar zijn goede redenen voor:

  • Open source - De broncode is openbaar. Je kunt precies zien wat het systeem doet, geen verborgen processen.
  • Stabiliteit - Linux servers draaien maanden of zelfs jaren zonder herstart. Ideaal voor kritieke systemen.
  • Flexibiliteit - Je hebt totale controle over elk aspect van het systeem via de command line.
  • Security tools - Nmap, Wireshark, Metasploit, John the Ripper: allemaal native Linux tools.
  • Gratis - Geen licentiekosten. Download, installeer, en ga aan de slag.
Je hoeft niet meteen je hele computer om te gooien naar Linux. Begin met een VM (Virtual Machine) via VirtualBox of VMware, of gebruik de Windows Subsystem for Linux (WSL). Zo kun je veilig experimenteren zonder risico.

De Directory Structuur: Alles Begint bij /

In Windows heb je schijfletters: C:\, D:\, enzovoort. Linux werkt fundamenteel anders. Er is geen C:\. Alles begint bij een enkele root directory, geschreven als /. Van daaruit vertakken alle mappen en bestanden zich als een omgekeerde boom.

De belangrijkste mappen die je als hacker moet kennen:

$ ls /
bin boot dev etc home lib media mnt opt proc root sbin srv sys tmp usr var
  • / - De root. Het startpunt van alles.
  • /home - Persoonlijke mappen van gebruikers. Jouw bestanden staan in /home/jouwgebruikersnaam.
  • /etc - Configuratiebestanden van het hele systeem. Wachtwoorden, netwerkinstellingen, services: het zit allemaal hier.
  • /var - Variabele data: logbestanden (/var/log), databases, e-mail wachtrijen.
  • /tmp - Tijdelijke bestanden. Wordt regelmatig leeggemaakt. Aanvallers gebruiken dit vaak om payloads op te slaan.
  • /bin en /sbin - Essentieel systeemcommando's (ls, cp, mv in /bin; admin-tools in /sbin).
  • /usr - Gebruikersprogramma's en bibliotheken. De meeste geinstalleerde software staat hier.
  • /root - De home directory van de root-gebruiker (de systeembeheerder). Niet te verwarren met /.
Voor security professionals is /etc de meest interessante map. Hier vind je /etc/passwd (gebruikerslijst), /etc/shadow (gehashte wachtwoorden), /etc/ssh/sshd_config (SSH configuratie) en honderden andere configuratiebestanden die een systeem kwetsbaar of juist veilig maken.

Navigatie: Weten Waar Je Bent

De drie basiscommando's voor navigatie zijn ls, cd en pwd. Zonder deze drie kom je nergens.

pwd - Print Working Directory

Verdwaald? pwd vertelt je precies waar je bent:

$ pwd
/home/hacker/Documents

cd - Change Directory

Navigeer naar een andere map:

$ cd /etc
$ pwd
/etc
$ cd ..
$ pwd
/

Onthoud: cd .. gaat een niveau omhoog, cd ~ brengt je terug naar je home directory, en cd - springt terug naar de vorige locatie.

ls - List

Bekijk wat er in een map staat:

$ ls -la /etc/ssh/
drwxr-xr-x 2 root root 4096 jan 15 10:30 . drwxr-xr-x 96 root root 4096 jan 15 10:30 .. -rw-r--r-- 1 root root 1580 jan 15 10:30 ssh_config -rw------- 1 root root 3326 jan 15 10:30 sshd_config -rw------- 1 root root 505 jan 15 10:30 ssh_host_rsa_key

De -l flag geeft een gedetailleerde weergave met permissies, eigenaar en bestandsgrootte. De -a flag toont ook verborgen bestanden (die met een punt beginnen).

Bestanden Lezen: De Inhoud Bekijken

Navigeren is stap een. Maar als hacker wil je weten wat er in bestanden staat. Configuratiebestanden, logbestanden, scripts - ze bevatten allemaal waardevolle informatie.

cat - Toon Bestandsinhoud

Het simpelste commando om een bestand te lezen. cat dumpt de volledige inhoud op je scherm:

$ cat /etc/hostname
webserver-prod-01

head en tail - Begin en Eind

Grote logbestanden wil je niet helemaal lezen. head toont de eerste regels, tail de laatste:

$ tail -20 /var/log/auth.log
Feb 10 03:14:22 server sshd[1842]: Failed password for root from 203.0.113.42 Feb 10 03:14:25 server sshd[1842]: Failed password for root from 203.0.113.42 Feb 10 03:14:28 server sshd[1842]: Failed password for root from 203.0.113.42
Het commando tail -f /var/log/auth.log volgt het logbestand in real-time. Je ziet nieuwe regels verschijnen zodra ze worden geschreven. Ideaal om live in te loggen pogingen te monitoren op een server.

Bestanden Zoeken: find en grep

Op een systeem met duizenden bestanden heb je zoekcommando's nodig. Twee van de krachtigste tools in je arsenaal zijn find en grep.

find - Zoek Bestanden op Naam of Eigenschappen

$ find / -name "*.conf" -type f 2>/dev/null
/etc/ssh/sshd_config /etc/nginx/nginx.conf /etc/mysql/my.cnf /etc/apache2/apache2.conf

Dit doorzoekt het hele systeem (/) naar bestanden (-type f) die eindigen op .conf. De 2>/dev/null onderdrukt foutmeldingen voor mappen waar je geen toegang hebt.

grep - Zoek Tekst in Bestanden

$ grep -r "password" /etc/ 2>/dev/null
/etc/mysql/debian.cnf:password = geheim123 /etc/ppp/chap-secrets:# user server password IP

Met grep -r doorzoek je recursief alle bestanden in een map naar een bepaalde tekst. Dit is een van de eerste dingen die een hacker doet na toegang tot een systeem: zoeken naar wachtwoorden, API keys en andere gevoelige informatie in configuratiebestanden.

Belangrijk: Het zoeken naar wachtwoorden en gevoelige data op systemen van anderen zonder toestemming is illegaal. Gebruik deze technieken alleen op je eigen systemen, in CTF-competities, of tijdens een pentest waarvoor je schriftelijke toestemming hebt.

Bestanden Beheren: cp, mv, rm, mkdir, touch

Naast lezen en zoeken moet je ook bestanden kunnen aanmaken, kopieren, verplaatsen en verwijderen.

  • touch bestand.txt - Maak een leeg bestand aan (of update de tijdstempel van een bestaand bestand).
  • mkdir -p pad/naar/map - Maak een mappenstructuur aan, inclusief tussenliggende mappen.
  • cp bron.txt doel.txt - Kopieer een bestand. Gebruik -r voor mappen.
  • mv oud.txt nieuw.txt - Verplaats of hernoem een bestand.
  • rm bestand.txt - Verwijder een bestand. Permanent. Geen prullenbak.
Gebruik altijd rm -i als je onzeker bent. De -i flag vraagt om bevestiging voordat elk bestand wordt verwijderd. Dit kan je redden van een kostbare fout, vooral wanneer je met wildcards werkt.

Permissies: Wie Mag Wat?

Het Linux permissiesysteem is een van de belangrijkste concepten voor security. Elk bestand en elke map heeft drie sets rechten voor drie groepen: de eigenaar (owner), de groep (group), en alle anderen (others). Elke set bestaat uit drie rechten:

  • r (read) - Lezen: de inhoud van het bestand bekijken.
  • w (write) - Schrijven: de inhoud van het bestand aanpassen.
  • x (execute) - Uitvoeren: het bestand als programma draaien.
$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1234 feb 10 08:00 /etc/shadow

Laten we -rw-r----- ontleden:

  • - - Dit is een gewoon bestand (een d zou een directory zijn).
  • rw- - De eigenaar (root) mag lezen en schrijven, maar niet uitvoeren.
  • r-- - De groep (shadow) mag alleen lezen.
  • --- - Alle anderen mogen helemaal niks.

chmod - Permissies Wijzigen

Met chmod verander je permissies. Je kunt dit op twee manieren doen: symbolisch of met het octale systeem.

$ chmod 755 script.sh
$ ls -l script.sh
-rwxr-xr-x 1 hacker hacker 2048 feb 10 12:00 script.sh

Het getal 755 werkt zo: elk cijfer is de som van r=4, w=2, x=1:

  • 7 (4+2+1) = rwx - eigenaar mag alles.
  • 5 (4+0+1) = r-x - groep mag lezen en uitvoeren.
  • 5 (4+0+1) = r-x - anderen mogen lezen en uitvoeren.
Veelvoorkomende permissiewaarden: 644 (standaard voor bestanden: eigenaar leest/schrijft, rest alleen lezen), 755 (standaard voor uitvoerbare bestanden en mappen), 600 (alleen eigenaar mag lezen en schrijven - gebruikelijk voor SSH keys), 777 (iedereen mag alles - bijna altijd een security risico).

Verborgen Bestanden: De Punt-Conventie

In Linux zijn bestanden die beginnen met een punt (.) verborgen. Ze verschijnen niet bij een normaal ls commando - je hebt ls -a nodig om ze te zien. Dit is belangrijk omdat veel gevoelige configuratiebestanden verborgen zijn:

  • ~/.bashrc - Shell configuratie. Aanvallers voegen hier soms backdoors toe.
  • ~/.ssh/ - SSH sleutels en configuratie. De bestanden id_rsa (private key) en authorized_keys zijn hier goud waard.
  • ~/.bash_history - Commandogeschiedenis. Bevat soms per ongeluk ingetypte wachtwoorden.
  • ~/.config/ - Applicatieconfiguratie. API tokens, database credentials en meer.
  • ~/.gitconfig - Git instellingen, inclusief naam en e-mailadres van de gebruiker.
Een van de eerste dingen die een hacker doet na het verkrijgen van shell toegang is ls -la ~ uitvoeren. Verborgen bestanden bevatten vaak de sleutel tot verdere toegang: SSH keys, opgeslagen wachtwoorden, API tokens en commandogeschiedenis met gevoelige informatie.

Waarom Dit Belangrijk Is voor Security

Het bestandssysteem begrijpen is niet zomaar een "nice to have" - het is de fundering van bijna elke security-taak. Hier zijn concrete voorbeelden:

  • Privilege escalation - Bestanden met verkeerde permissies (zoals een SUID bit op het verkeerde programma) kunnen een normale gebruiker root-toegang geven.
  • Log analyse - In /var/log/ vind je bewijs van inbraakpogingen, verdachte logins en systeemfouten.
  • Configuratie audits - Onjuiste instellingen in /etc/ zijn een van de meest voorkomende oorzaken van security breaches.
  • Data exfiltratie - Weten waar gevoelige data staat (/home, /var/lib, /opt) is essentieel voor zowel aanvallers als verdedigers.
  • Forensisch onderzoek - Na een incident moet je bestanden, timestamps en permissies analyseren om te bepalen wat er is gebeurd.

Oefenen in HackSimulator.nl

Probeer het zelf!

Alle commando's uit dit artikel kun je veilig oefenen in HackSimulator.nl. Probeer ls en cd om te navigeren, cat om bestanden te lezen, find en grep om te zoeken, en chmod om permissies te oefenen. Type help voor een overzicht van alle beschikbare commando's.

Open de terminal

Volgende Stappen

Nu je de basis van het Linux bestandssysteem kent, kun je verder met:

  • Pipes en redirection - Combineer commando's met | en sla output op met >
  • Proces management - Leer over ps, top en kill om draaiende programma's te beheren
  • Netwerk commando's - Ontdek netstat, ss en nmap voor netwerkanalyse
  • Shell scripting - Automatiseer taken met Bash scripts
  • Bekijk onze volledige command reference voor alle beschikbare commando's met uitleg

Meer lezen?