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:
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.
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:
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).
Kommandoraden:
Kör dessa kommandon för att uppdatera registervärden:
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.
Ä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.