Metode & verktøy

Slik utfører vi en sårbarhetstest i praksis.

Ingen sort boks. Her er fasene vi går gjennom, verktøyene vi bruker, hvordan de kjøres og hva vi faktisk leter etter. Skrevet for deg som vurderer å bestille en rapport, eller bare vil forstå hva som skjer på den andre siden av et samtykke-skjema.

Autorisert testing med skriftlig samtykke Tre intensitetsnivåer: stealth / normal / aggressiv Rapport i PDF, markdown eller HTML
01 // Filosofi

Vi tester aldri uten skriftlig samtykke.

En sårbarhetstest er teknisk sett en kontrollert simulering av et angrep. Det betyr at vi sender pakker, prøver innlogginger og leter etter feilkonfigurasjoner som kan misbrukes. Uten et samtykke fra eieren er det samme handling som et reelt innbrudd, og rammes av norsk straffelov.

Straffeloven §§ 201 og 204

Uberettiget tilgang til datasystem kan straffes med fengsel i inntil 2 år, eller 6 år ved grove tilfeller. Vi krysser aldri den grensen for deg.

Hva som kreves før vi starter

  • Skriftlig samtykke fra domeneeier, vi trenger bekreftelse fra den som faktisk eier eller administrerer målet.
  • Scope-avtale, hvilke domener, IP-er og porter som er innenfor; hva som er eksplisitt utenfor.
  • Vindusperiode, vi avtaler når skanningen kjøres, så driftsteamet ditt ikke får hjerteinfarkt klokken to om natten.

Når dette er på plass får du en engagement-ID du kan referere til når vi snakker om funn senere.

02 // Prosess

Åtte faser, fra kartlegging til rapport.

En full test går gjennom et fast forløp. Hver fase bygger på den forrige, og du får statusoppdatering når hver fase er ferdig. AD- og sky-fasene hoppes over hvis målet ditt ikke har relevant infrastruktur.

FASE 01
Recon
Kartlegging fra utsiden uten å røre målet: DNS, sertifikater, OSINT, lekkasjer.
FASE 02
Web
Skjulte filer og mapper, eksponerte admin-paneler, kjente CMS-spor, OWASP-prober.
FASE 03
Active Directory
Kjøres bare hvis målet har AD-infrastruktur. BloodHound-enumerering, Kerberoasting, delegasjons-analyse.
FASE 04
Sky-konfigurasjon
Kjøres bare hvis sky-credentialer er konfigurert. IAM, eksponerte hemmeligheter, feilkonfigurasjoner.
FASE 05
Kjede-analyse
Hvordan flere små funn kan kombineres til en alvorlig sårbarhet.
FASE 06
Verifisering
Falske positiver lukes ut. Hver bekreftet sårbarhet får en proof-of-concept.
FASE 07
Deteksjon
Sigma-, SPL- og KQL-regler genereres for hver teknikk som ble brukt under testen.
FASE 08
Rapport
Funn klassifisert etter CVSS, med konkrete tiltak og deteksjonsregler.

Typisk gjennomføringstid

De automatiserte rundene mot ett domene med under 50 endepunkter tar 1–5 minutter. Vi setter alltid av 3 arbeidsdager fra bestilling til ferdig rapport, tid til manuelt verifiserte funn, lukke ut falske positiver, skrive forklaringer og levere noe styret kan lese.

03 // Intensitet

Vi tilpasser tempoet til din produksjon.

Du velger hvor hardt vi tråkker. Aggressiv test går fortere, men trigger brannmurer og kan se ut som et reelt angrep i SOC-en. Stealth-mode tar lengre tid, men flyr under radaren, nyttig hvis du vil teste om deteksjonen deres fungerer.

Modus
Hastighet
Risiko for blokk
Når vi bruker det
stealth
Sakte
Minimal, typisk under WAF-terskel
Hvis du vil sjekke om SOC oppdager oss
normal
Moderat
Lav, respekterer 429
Standard for første test
aggressiv
Maks tempo
Høy, kan trigge brannmur/rate-limit
Når du vil ha rask oversikt på dev/staging

Rate-limit-respekt er på som standard

Vi backoff-er automatisk på HTTP 429 og Retry-After. Maks 3 forsøk, eksponentiell backoff cap'et på 30 sekunder. Det betyr at en aggressiv test mot et hardt-konfigurert mål faktisk faller tilbake til normal-tempo.

04 // Arsenal

Verktøyene vi bruker, og hvorfor.

Hvert verktøy har en grunn til å være med. Her er hver enkelt, med eksempel-kommandoen vi faktisk kjører og hva slags funn det typisk gir.

🛡
Nmap
network mapper · /usr/bin/nmap
PLUSS-verktøy

Bransjestandard for port- og tjenesteoppdagelse i over 25 år. Sender pakker til hver port og analyserer responsen for å gjette hva som lytter der.

Hvorfor

Du kan ikke teste det du ikke vet finnes. Nmap gir oss kartet over hva som er eksponert mot internett, ofte mer enn driftsteamet selv tror. Glemte database-porter, RDP eller test-tjenester på ikke-standard porter er typiske ting som dukker opp.

Hvordan vi kjører den

# Service detection + script-skann mot topp 1000 porter $ nmap -sV -sC --top-ports 1000 -T3 mustvedt.net # Full TCP-skann med versjons-deteksjon og OS-fingerprint (krever sudo) $ sudo nmap -sS -sV -O -p- --min-rate 1000 mustvedt.net

Flaggene betyr: -sV version detection, -sC default NSE-skript, -T3 normal tempo, -p- alle 65535 porter.

Typiske funn

  • Åpne porter for tjenester som ikke skulle vært eksponert (database, Redis, MongoDB).
  • Utdaterte versjoner av nginx, Apache, OpenSSH som har kjente CVE-er.
  • Admin-paneler på ikke-standard porter (8080, 8443, 9090).
  • SNMP, mDNS og andre interne tjenester som lekker info.
🌍
Nikto
webserver scanner · /usr/local/bin/nikto
PLUSS-verktøy

Sjekker en webserver mot 6700+ kjente sårbarheter, farlige filer og feilkonfigurasjoner. Litt soroken på false positives, men fanger ting ingen andre fanger.

Hvorfor

Nikto er den eneste skanneren som dekker så bredt på «gamle synder»: glemte .git-mapper, default-passord på admin-paneler, eksponerte phpinfo.php, sårbare CGI-scripts. Mye av det den finner er fra epoker hvor driftsfolk gjorde ting som virket lurt i 2008.

Hvordan vi kjører den

# Standard skann med oppdatert sårbarhetsdatabase $ nikto -h https://mustvedt.net -Tuning x4567890ab -output nikto.txt # Med autentisering (cookie-basert) $ nikto -h https://target.no -id user:pass

Tuning-flaggene styrer hvilke testkategorier som kjøres (1-9, a-c, x). Vi skipper typisk de mest støyende.

Typiske funn

  • Eksponerte .git, .svn, .env, .DS_Store-filer som lekker kildekode og hemmeligheter.
  • phpinfo.php, server-status, server-info som lekker stack-info.
  • Default-credentialer på Tomcat Manager, Jenkins, WordPress wp-admin.
  • Mangler HSTS, X-Frame-Options, CSP, typisk header-funn.
🔭
gobuster
content discovery · /usr/bin/gobuster
PLUSS-verktøy

Brute-forcer mappe- og filnavn for å finne ting som ikke er lenket fra noen offentlig side. Skrevet i Go, går fort.

Hvorfor

Mange admin-paneler, backup-filer og glemte test-sider er ikke lenket noe sted. De ligger der hvis du kjenner navnet. Gobuster prøver tusenvis av sannsynlige navn og forteller hvilke som faktisk eksisterer på serveren. Dette finner ofte det ingen andre verktøy fanger.

Hvordan vi kjører den

# Standard mappe-brute med vår ordliste $ gobuster dir -u https://mustvedt.net \ -w /opt/wordlist-common.txt \ -x php,html,bak,old,zip,tar.gz \ -t 20 -q # Subdomain enumerering via DNS $ gobuster dns -d mustvedt.net -w /opt/subdomains.txt

-x-flagget får den til å prøve hver path med flere ekstensjoner. -t 20 = 20 parallelle tråder.

Typiske funn

  • Backup-filer: .bak, ~, .old, som ofte inneholder hele DB-dumpen.
  • Skjulte admin-paneler: /admin/, /cpanel/, /manager/.
  • Test-sider, dev-versjoner: /test.php, /dev/, /staging/.
  • Gamle CMS-installasjoner uten oppdateringer: /wp-admin/, /joomla/.
🔐
testssl.sh
TLS/SSL analysis · /usr/local/bin/testssl.sh
PLUSS-verktøy

Sjekker TLS-konfigurasjonen mot alle kjente angrep: BEAST, POODLE, Heartbleed, ROBOT, LOGJAM, og mange flere. Gir deg en karakter fra A+ til F.

Hvorfor

TLS er ikke en sak du «konfigurerer en gang». Nye angrep dukker opp, gamle suiter må fases ut, og protokoller som TLS 1.0 og 1.1 er offisielt døde. Vi sjekker mot 50+ kjente angrep og gir en konkret prioritert liste over hva du må fikse for å komme til A+.

Hvordan vi kjører den

# Full sjekk inkl. sårbarhets-tester og sertifikat-analyse $ testssl.sh --severity LOW --htmlfile tls.html \ --jsonfile tls.json mustvedt.net:443 # Bare sårbarheter, raskere $ testssl.sh --vulnerable mustvedt.net:443

Typiske funn

  • TLS 1.0/1.1 fortsatt aktivt, bør være av siden 2020.
  • Svake cipher-suiter: 3DES, RC4, NULL.
  • Manglende Forward Secrecy.
  • Sertifikat utløper snart, eller bruker SHA-1.
  • Sårbarheter: ROBOT, Heartbleed (sjelden, men finnes), CRIME, BREACH.
📥
theHarvester
passive OSINT · Python-basert
Passiv OSINT

Samler offentlig informasjon om et domene fra Bing, crt.sh, OTX og 20+ andre kilder. Berører aldri målet direkte.

Hvorfor

Mye av jobben en angriper gjør, gjør de før de noensinne sender en pakke mot målet. De søker etter ansatt-e-poster, subdomener, gamle versjoner av nettsiden, og sertifikat-historikk. theHarvester samler alt dette automatisk, slik at vi kan vise deg hva en motivert angriper ville visst om bedriften din etter en kaffe og fem minutter på Google.

Hvordan vi kjører den

# Passiv recon mot domenet, fra alle gratis kilder $ theHarvester -d mustvedt.net \ -b bing,crtsh,otx,duckduckgo,certspotter \ -l 500 -f harvest.html

Typiske funn

  • E-postadresser til ansatte fra offentlige kilder, perfekt material for phishing.
  • Subdomener du har glemt: gamle test-miljøer, leverandør-portaler.
  • IP-er og hosts som hører til ditt nettverk.
  • Sertifikat-historikk: hvilke navn dere har søkt sertifikat for opp gjennom årene.
🕷
SpiderFoot
dark web & leak OSINT · v4.0
PLUSS-verktøy

Korrelerer data fra 200+ kilder, inkludert betalte tjenester som IntelX (dark web, breach-database, pastes, Usenet). Bygger en graf over hva som finnes om deg på de mørke hjørnene av internett.

Hvorfor

Lekkede credentialer ligger ofte ute lenge før noen oppdager dem. SpiderFoot mot IntelX skanner pastes, dark web-fora, leaks-database, Usenet, DNS-historikk og whois-arkiv på sekunder, kilder du ikke ville funnet manuelt om du jobbet en hel uke.

Hvordan vi kjører den

# Domain-skann med IntelX og passive moduler $ sf.py -s mustvedt.net -t DOMAIN_NAME \ -m sfp_intelx,sfp_haveibeenpwned,sfp_pastes \ -q -o json

Vi kjører via wrapper-script ~/spiderfoot/run.sh som returnerer rene JSON-resultater til PHP-laget.

Typiske funn

  • Lekkede passord-hasher tilhørende ansatte (combo-lists, breach-dumps).
  • Kreditkort-numre, OAuth-tokens og API-nøkler i pastebin-historikk.
  • Omtale av bedriften på russiske/kinesiske underground-fora.
  • Tidligere kompromitterte e-postadresser fra kjente breaches.
📡
Passiv recon-stack
crt.sh · HIBP · Shodan · RDAP · Wayback
Gratis-verktøy

Verktøyene som ikke sender en eneste pakke til målet ditt. Bruker offentlige databaser for å bygge bildet.

Hvorfor

Selv før vi har samtykke kan vi gi deg et bilde av eksponeringen, bare basert på det som er offentlig. Dette er hva vi tilbyr i forhåndsvisninger og free-tier-skannere. Det er overraskende mye man kan finne ut uten å «berøre» målet.

Hva vi sjekker

  • crt.sh, Certificate Transparency-logger gir alle sertifikater utstedt for domenet de siste 5 årene. Avslører subdomener og tidligere infrastruktur.
  • Have I Been Pwned, har e-postadressene deres vært i et databasebrudd? Hvilke?
  • Shodan, viser hva som er sett på deres IP-er i fortiden, uten å skanne på nytt.
  • RDAP (avløser av WHOIS), hvem eier domenet, når utløper det, hvem er kontakt.
  • Wayback Machine, historiske versjoner av nettsiden kan inneholde glemte API-endepunkter og hemmeligheter.
  • DNS-resolvere, sjekker MX, SPF, DMARC, DKIM, CAA mot 8.8.8.8, 1.1.1.1 og 9.9.9.9 for å se hvordan ulike clients ser deg.
05 // Spesialist-agenter

Dedikerte test-agenter per domene.

Utover de klassiske kommandolinje-verktøyene har vi ti spesialist-agenter som hver dekker et eget domene. Hver agent vet hva som er relevant for sitt område, hva som er normalt, og hva som typisk går galt. De kjører asynkront og rapporterer funn tilbake til samme engagement.

🌐
Web-app-agenten
test_web_app

Full deterministisk web-skann med 60+ prober: SQLi (reflektert + blind + login-bypass), XSS (reflektert og lagret), SSRF, XXE, path traversal, IDOR, JWT-angrep, race conditions, type confusion, mass assignment via PATCH, host-header poisoning. OWASP API Top 10 dekkes når autentisert profil er konfigurert.

60+ prober OWASP Top 10 Auth-støttet
🔌
API-sikkerhets-agenten
test_api_security

REST og GraphQL etter OWASP API Top 10. Tester BOLA/IDOR, JWT alg-confusion, OAuth callback-validering, rate-limit-bypass, mass assignment og GraphQL introspection. Kan ta inn en OpenAPI-spesifikasjon for å teste hver definert endpoint.

REST + GraphQL OpenAPI-aware OWASP API
🏢
Active Directory-agenten
test_active_directory

BloodHound-enumerering, Kerberoasting, AS-REP roasting, delegasjons-angrep, privilege escalation-stier og domene-dominans. NTLM-credentials lastes via auth-profil server-side, de berører aldri MCP-/LLM-konteksten.

BloodHound Kerberoast Domene-takeover
Cloud-agenten
test_cloud · AWS/Azure/GCP

Feilkonfigurasjoner, eksponerte hemmeligheter, IAM-roller som er for snille, sårbare tjenester og privilege escalation-stier. Credentials hentes server-side fra env, 1Password, Vault eller AWS Secrets Manager.

AWS Azure GCP IAM-privesc
🔑
Credentials-agenten
test_credentials

Default-credentialer, password spraying og MFA-bypass-tester. Låsesensitiv, foretrekker spray (én passord-prøve mot mange brukere) framfor brute-force (mange passord mot én bruker) på produksjon. Vi låser ingen ut ved et uhell.

Password spray MFA-bypass Lockout-aware
📱
Mobil-agenten
test_mobile · Android/iOS

Statisk og dynamisk analyse av Android- og iOS-apper. Dekker OWASP Mobile Top 10: usikker lokal lagring, ekstern trafikk uten TLS, hardkodede hemmeligheter, debug-flagg, eksponerte intent-handlers, jailbreak-/root-deteksjon-omgåelser.

APK + IPA Statisk + dynamisk OWASP Mobile
📶
Wireless-agenten
test_wireless

WiFi- og Bluetooth-sikkerhet på stedet. WPA/WPA2-/WPA3-konfigurasjon, rogue access points, deauth-deteksjon, Bluetooth-pairing-svakheter. Krever på-stedet-test med wlan-interface.

WPA2/3 Bluetooth LE On-site
🎣
Social engineering-agenten
test_social_engineering

Phishing-simulering, OSINT-mapping av ansatte, DMARC/SPF/DKIM-audit. Vi tester hvor lett det er å forfalske avsender-domenet ditt, og om de ansatte klikker når noen later som de er sjefen.

Phishing-sim DMARC-audit OSINT
Privesc-agenten
test_privesc · linux/windows/container

Etter at en lav-privilegert konto er kompromittert: kan vi komme oss høyere opp? Bruker LinPEAS / WinPEAS / DeepCE pluss kernel-exploit-suggester. Bare enumerering som standard, eskalering kun med eksplisitt grønt lys.

LinPEAS WinPEAS Container-escape
🎯
Vuln-agenten
test_vulnerabilities

Bred sårbarhetsskann med Nuclei + RouterSploit + Nikto + dirb. De-dupliserer mot eksisterende funn i samme engagement, filterer ut åpenbare falske positiver, og rangerer etter CVSS pluss EPSS, sannsynligheten for at sårbarheten faktisk blir utnyttet i naturen.

Nuclei + 4 til CVSS + EPSS FP-filter
🧭

Auto-valg av riktig agent

Du trenger ikke å vite hvilken agent du skal kjøre. select_agent tar et fritekst-mål og en valgfri intensjon, og returnerer riktig agent deterministisk basert på heuristikker. «test alle våre AWS-konti» → cloud-agenten. «vår SharePoint-server» → AD-agenten.

06 // Bug-klasse-prober

60+ navngitte prober, kjørbare enkeltvis.

Hver bug-klasse vi tester for har én eller flere dedikerte prober. Listen vokser hver måned. Du kan kjøre alle som en pakke gjennom web-agenten, eller plukke ut spesifikke prober for målrettet testing. Her er hva som ligger inne i dag, gruppert etter angreps-kategori.

💉Injection (SQLi / NoSQL / LDAP / SSTI)

sqli_fuzz search_sqli_get login_sqli_bypass sqli_login_bypass ldap_injection ssti_fuzz ssti_stored ssti_polyglot nosql_fuzz nosql_inject

🪞Cross-site scripting

reflected_xss stored_xss xss_fuzz dom_xss

🔓Autorisering & tilgang

idor_sequential idor_authenticated idor_authz_differential privilege_escalation_patch mass_assignment trusted_header_bypass role_self_promote unauth_rest_leak cache_deception

🎟Auth & sesjon

jwt_alg_none jwt_alg_variants jwt_jku_x5u_ssrf authenticated_pivot saml_xsw oauth_pkce_downgrade password_reset_weak host_header_reset_poisoning cookie_prefix_bypass user_enum

📂Filer, deserialisering & RCE

path_traversal xxe_upload deserialization file_upload_validation nextjs_rsc_rce cve_poc_primitives

🌍SSRF & CORS

ssrf_cloud_metadata cors_reflection

Race conditions & logikk

race_condition business_logic_fuzz prototype_pollution coupon_forging type_confusion open_redirect captcha_replay

🔎Discovery & info-lekkasje

leaked_credentials exif_metadata ftp_leak forced_error web3_probe api_path_discovery asset_secrets_scan hidden_discovery dev_interfaces graphql_introspection directory_listing source_maps response_headers

Røde chips = kan nå kritisk eller høy CVSS hvis truffet. Gule = medium. Hver probe har et eget «requires_auth»-flagg som styrer om den fyrer mot uautoriserte eller bare innloggede mål. Full liste hentes via list_probes.

07 // Avanserte funksjoner

Det de andre verktøyene ikke har.

Plattformen vi bruker kjører flere lag over de rå skannerne. Disse funksjonene er grunnen til at vi kan levere en rapport som ikke bare er en eksport av Nuclei-output.

authenticated_scan
🪪

Autentiserte skann

Logger inn med en server-side credential-profil og skanner som en innlogget bruker. Credentials passerer aldri gjennom LLM-konteksten. Lar oss treffe auth-gated bug-klasser som race conditions, mass assignment og innlogget SQLi.

browser_inspect
🎭

Headless browser-inspeksjon

Ekte Chromium henter siden og rapporterer DOM, forms, scripts, network-requests, cookies og security-headers. Fanger SPA-er, postMessage-flyter og JS-injiserte endepunkter som curl aldri ser.

discover_attack_chains

Angreps-kjede-deteksjon

Analyserer alle funn i en engagement og finner ut hvordan flere middels funn kan kombineres til full kompromittering. «Lekket env-fil + svak JWT-secret + SSRF» → admin-takeover.

validate_finding

Trygg PoC-validering

For hvert funn kan vi kjøre en ikke-destruktiv proof-of-concept som beviser at sårbarheten er reell og utnyttbar. Ingen permanent endring i målet. Status flippes til confirmed eller failed.

generate_detection_rules
🚨

Sigma/SPL/KQL-deteksjon

Hver offensive teknikk får en tilsvarende deteksjons-regel som blå-team kan slippe rett inn i SIEM-en. Sigma for portabilitet, SPL for Splunk, KQL for Microsoft Sentinel.

query_compliance
📜

Compliance-mapping

Funnene grupperes per PCI-DSS-, HIPAA-, SOC2- og OWASP-kontroll. Du slipper å oversette mellom rapporten og compliance-skjemaet manuelt.

start_campaign
🌐

Multi-target-kampanjer

Én kommando, mange mål: alle prod-IP-er, hele subdomene-listen, hver av kundens API-er. Kampanjen oppretter én engagement per mål og lar deg konsolidere funn på tvers.

strict_scope
🛂

Strikt scope-håndhevelse

Engagement med strict_scope=true avviser alle requests utenfor mål-hosten. Også slått av redirect-følging i primitivene, en 302 til attacker.com kan ikke trekke skann ut av scope.

resume_engagement

Pause og fortsett

Engagements kan pauses, settes på vent gjennom natten, og fortsette neste morgen. State persisteres i en lokal SQLite-database, så ingenting går tapt om sesjonen kuttes.

🔒

Credentials-håndtering

Alle hemmeligheter, login-passord, API-tokens, sky-credentialer, lastes server-side via et auth-profile-system. Selve verdien passerer aldri gjennom LLM-en eller MCP-protokollen. Vi kan integrere mot 1Password (op://), HashiCorp Vault, AWS Secrets Manager, eller bare miljøvariabler.

08 // Leveranse

Rapporten du får, og hva den inneholder.

En pen-test og recon som ikke kan handles på, er bare en lang PDF. Vi skriver rapporter som gir driftsteamet en konkret rekkefølge: dette først, slik fikser du det, slik verifiserer du at det er borte.

Struktur

  • Executive summary, én side ledelsen kan lese. Hva fant vi, hva betyr det, hva koster det å fikse.
  • Teknisk oversikt, alle funn med CVSS-score, CWE-id og OWASP-kategori.
  • Angreps-kjeder, hvordan tre middels funn kan kombineres til ett kritisk problem.
  • Proof of Concept, eksakt kommando eller request som demonstrerer sårbarheten, og hva svaret blir.
  • Tiltak, for hvert funn: midlertidig mitigering, varig fiks, hvordan verifisere.
  • Deteksjonsregler, Sigma-regler du kan slippe rett inn i SIEM-en.
  • Bilag, rå output fra alle verktøyene, hvis du vil dobbeltsjekke.
📄

Formater vi leverer i

PDF for arkivering og distribusjon. Markdown hvis dere vil committe det til en intern repo. HTML hvis dere vil dele en interaktiv versjon med teamet. JSON hvis dere vil pipe det inn i en GRC-plattform.

CVSS-prioritering

Hvert funn får en CVSS 3.1-score. Vi grupperer slik:

  • Kritisk (9.0–10.0), fiks innen 24 timer. Aktiv utnyttbar fra internett, gir kontroll over system eller data.
  • Høy (7.0–8.9), fiks innen 7 dager. Utnyttbar med innloggede brukere, eller lekker sensitiv info.
  • Medium (4.0–6.9), fiks innen 30 dager. Krever spesifikke forhold, eller bidrar til større angrep.
  • Lav / Info (<4.0), best practice. Fiks når dere kan.

Klar for en autorisert test?

Bestill en pen-test og recon. Du signerer samtykke, vi avtaler vindu, du får rapporten på e-post.