Skip to main content

Signering för små och medelstora företag: Stoppa nätverksövertagande attacker

Vikten av SMB-signering

När vi testar Windows-miljöer ser vi regelbundet att det krypterade lösenordet för en användare med höga behörigheter skickas över nätverket. I kombination med system där SMB-signering är inaktiverat kan en angripare eller illvillig person öka privilegierna inom nätverket genom att utföra en NTLM-reläattack,. Beroende på nätverksmiljön kan en angripare öka behörigheterna till den högsta nivån.

Förstå Net-NTLM

Windows använder många olika protokoll för autentisering. Ett av dessa protokoll är Net-NTLM. Detta protokoll används för att autentisera användare över nätverket. Det finns två versioner: Net-NTLMv1 och Net-NTLMv2. Båda versionerna beräknar en så kallad Net-NTLM-hash genom att omvandla användarens krypterade lösenord till en slumpmässig sträng som består av åtta byte. Net-NTLMv1 är uppenbart mindre säker än version 2 och har avaktiverats som standard sedan Windows Vista och Windows Server 2008.

Avlyssning av autentiseringsbegäran

Med hjälp av verktyget Responder kan vi fånga upp autentiseringsbegäran som skickas över nätverket. Ett exempel visas nedan:

 

En angripare kan försöka göra två saker med den här hashen:

  1. Försöka att knäcka lösenordet offline med hjälp av verktyg som John the Ripper eller Hashcat. Framgångsgraden beror dock på hur starkt lösenordet är. Ett starkt lösenord är inte lätt att knäcka.
  2. Utför en NTLM-reläattack mot alla interna system som inte tillämpar SMB-signering.

 

NTLM-reläattack

NTLM-reläattacken utnyttjar Net-NTLM-protokollet. En angripare snappar upp en legitim autentiseringsbegäran, ändrar innehållet och vidarebefordrar begäran till en dator som inte tillämpar SMB-signering. Detta autentiserar angriparen på målsystemet med hjälp av kontexten för den användare som skickade den ursprungliga autentiseringsbegäran. I värsta fall kan en angripare använda detta för att köra fjärrkod på systemet. En angripare kan också använda den här attacken för att få tillgång till nätverksresurser som angriparen normalt inte har tillgång till.

Utföra en NTLM-reläattack

För att utföra NTLM-reläattacken används tre verktyg: NetExec, Responder och ntlmrelayx. Eftersom en NTLM-reläattack endast fungerar på system där SMB-signering är inaktiverat, krävs en lista över system där SMB-signering är inaktiverat. Den här listan kan skapas med NetExec med följande kommando:

netexec smb 192.168.126.0/24 --gen-relay-list targets.txt
 

Detta kontrollerar adressintervallet för maskiner som har SMB aktiverat och SMB-signering inaktiverat. De IP-adresser som matchar skrivs till filen.

Därefter använder vi verktygen Responder och ntlmrelayx. Responder är ansvarigt för att fånga Net-NTLM-hashvärdet och vidarebefordra det till ntlmrelayx, som sedan autentiserar sig på den angivna värden via SMB med det hashvärde som det har mottagit. För att åstadkomma detta måste SMB- och HTTP-servern inaktiveras i Responders konfiguration. Detta kan göras genom att öppna konfigurationsfilen och ändra värdena bakom SMB och HTTP till ”Off”. Konfigurationsfilen ska se ut så här:

Därefter måste Responder startas på det aktiva nätverksgränssnittet, i det här fallet eth0. Detta kan göras genom att köra följande kommando:

responder -I eth0 -d -w

Slutligen använder vi verktyget ntlmrelayx för att extrahera innehållet i SAM-databasen från målsystemen. För att göra detta startar vi ntlmrelayx med följande kommando:

python3 ntlmrelayx.py -tf targets.txt

När ntlmrelayx tar emot en Net-NTLM-hash från Responder försöker den autentisera sig mot systemen i filen. Om autentiseringen lyckas försöker ntlmrelayx sedan att extrahera innehållet i SAM-databasen. För att göra detta måste den användare vars hash har fångats ha lokala administrationsrättigheter på målsystemet. Förutom att extrahera SAM-databasen är det också möjligt att utföra andra systemkommandon.

Konsekvenser av en NTLM-reläattack

Bilden nedan visar en lyckad NTLM-reläattack, där användaren hade lokala administratörsrättigheter på målsystemet och därmed kunde innehållet i SAM-databasen extraheras.

En angripare skulle nu ha tillgång till det krypterade lösenordet för den lokala administratören. Detta ger angriparen lokala administratörsrättigheter på systemet. Detta gör att angriparen kan extrahera de krypterade lösenorden för användare som har eller nyligen har haft en session, från minnet. Om detta inkluderar en domänadministratör kan en angripare höja behörigheterna till Domain Admin och därmed ta över hela domänen.

Vi ser regelbundet att lösenordet för den lokala administratörsanvändaren återanvänds på flera datorer. Det innebär att en angripare kan använda samma lösenord för att logga in på flera datorer som lokal administratör. Detta breddar attackvektorn och ökar sannolikheten för att angriparen kan utöka sina privilegier.

Rekommendation: Aktivera SMB-signering

System är mottagliga för en NTLM-reläattack eftersom mottagaren inte verifierar meddelandets innehåll och ursprung. Det mest effektiva sättet att åtgärda denna sårbarhet är genom att aktivera SMB-signering över hela företaget.

SMB-signering är en säkerhetsmekanism i SMB-protokollet. När den är aktiverad skickas varje SMB-meddelande med en signatur i SMB-headerfältet. Signaturen består av innehållet i SMB-meddelandet, krypterat med AES-algoritmen. Detta gör att mottagaren av SMB-meddelandet kan verifiera att innehållet i meddelandet inte har ändrats. Det verifierar också avsändarens identitet. Om innehållet i meddelandet inte stämmer överens med SMB-headern vet mottagaren att meddelandet har manipulerats. Mottagaren släpper sedan meddelandet. Detta gör det omöjligt att framgångsrikt utföra NTLM-reläattacken.

Hur aktiverar man SMB-signering?

SMB-signering kan aktiveras genom att innehållet i registervärdena EnableSecuritySignature och RequireSecuritySignature sätts till 1. Detta måste tillämpas på både LanManServer och LanManWorkstation. Detta kan göras på två sätt: via ett systemkommando eller via det grafiska programmet ”Local Group Policy Editor” (gpedit.msc).

  1. Kommandoraden:

Kör dessa kommandon för att uppdatera registervärden:

--reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters /v EnableSecuritySignature /t REG_DWORD /d 1

--reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters /v RequireSecuritySignature /t REG_DWORD /d 1

--reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters /v EnableSecuritySignature /t REG_DWORD /d 1

--reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters /v RequireSecuritySignature /t REG_DWORD /d 1

Starta om systemet för att verkställa ändringarna.

2. Group Policy Editor

Navigera till Computer Configuration > Windows Settings > Local Policies > Security Options.

Aktivera följande policyer:

--Microsofts nätverksklient: Digitalt signerad kommunikation (alltid)

--Microsofts nätverksklient: Digitalt signera kommunikation (om servern samtycker)

--Microsofts nätverksserver: Digitalt signerad kommunikation (alltid)

--Microsofts nätverksserver: Digitalt signerad kommunikation (om klienten samtycker)

Starta om systemet för att verkställa ändringarna.

3. Linux-system:

Redigera Samba-konfigurationsfilen för att inkludera:

client signing = mandatory
server signing = mandatory
 

Starta om systemet för att verkställa ändringarna.

Slutsats

För att skydda ditt nätverk från NTLM-reläattacker är det viktigt att aktivera SMB-signering. Det säkerställer SMB-meddelandenas integritet och äkthet och minskar därmed en betydande säkerhetsbrist. Genom att implementera SMB-signering i hela nätverket kan du skydda dig mot potentiella angripare som utökar sina privilegier och tar över nätverket.

Relevanta resurser

--https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/overview-server-message-block-signing

--https://github.com/lgandx/Responder

--https://github.com/fortra/impacket/blob/master/examples/ntlmrelayx.py

--https://github.com/Pennyw0rth/NetExec

Kom igång med Securances cybersäkerhetstjänster

Är du beredd att försvara din organisation mot cyberhot? Securance erbjuder robusta cybersäkerhetstjänster för att skydda era digitala tillgångar. Våra experter kan utföra omfattande säkerhetsbedömningar, implementera toppmoderna säkerhetsåtgärder och tillhandahålla kontinuerlig övervakning för att skydda ditt nätverk från potentiella attacker. Kontakta oss idag för att förbättra din cybersäkerhet och säkra din organisations framtid.