SMB-signing: Voorkom netwerkovernames

Het belang van SMB-signing

Bij beveiligingstests van Windows-omgevingen zien wij regelmatig dat het versleutelde wachtwoord van een gebruiker met hoge rechten over het netwerk wordt verstuurd. In combinatie met systemen waarop SMB-signing is uitgeschakeld kan een aanvaller, door middel van een NTLM relay attack, de rechten binnen het netwerk verhogen. Afhankelijk van het netwerk kan een aanvaller de rechten verhogen tot het hoogste niveau en zo controle krijgen over de gehele omgeving.

Begrip van Net-NTLM

Windows maakt gebruik van veel verschillende authenticatieprotocollen. Eén van die protocollen is Net-NTLM. Dit protocol authenticeert gebruikers over het netwerk. Er bestaan twee versies: Net-NTLMv1 en Net-NTLMv2. Beide versies berekenen een zogeheten Net-NTLM-hash door het versleutelde wachtwoord van een gebruiker te verwerken in een willekeurige string bestaande uit acht bytes. Net-NTLMv1 is vanzelfsprekend minder veilig dan Net-NTLMv2 en wordt sinds Windows Vista en Windows Server 2008 standaard uitgeschakeld.

Authenticatieverzoeken onderscheppen

Met de tool Responder kunnen we authenticatieverzoeken onderscheppen die over het netwerk worden verstuurd. Hieronder staat een voorbeeld:

Een aanvaller kan met deze hash twee dingen proberen te doen:

  1. Het wachtwoord proberen offline te kraken met hulpprogramma’s als John the Ripper en Hashcat. De slagingskans is echter afhankelijk van de sterkte van het wachtwoord. Een sterk wachtwoord zal niet snel gekraakt worden.
  2. Een NTLM relay aanval uitvoeren tegen de interne systemen die geen SMB signing afdwingen.

NTLM Relay Attack

Een NTLM relay attack maakt misbruik van het Net-NTLM-protocol. Een aanvaller onderschept een legitiem authenticatieverzoek en stuurt deze door naar een computer. Dit authenticeert de aanvaller op het doelsysteem in de context van de gebruiker die het verzoek verstuurde. In het ergste geval kan een aanvaller hiermee code uitvoeren op het onderliggende systeem. Ook zou een aanvaller toegang kunnen krijgen tot netwerkschijven waar de aanvaller normaalgesproken niet bij kan.

Het uitvoeren van een NTLM Relay aanval

Om een NTLM relay aanval uit te voeren worden drie hulpprogramma’s gebruikt: NetExec, Responder en ntlmrelayx. Omdat een NTLM relay attack alleen werkt op systemen waarop SMB-signing is uitgeschakeld, is een lijst nodig met systemen waarop dit uitgeschakeld is. Deze lijst kan gegenereerd worden met NetExec door het volgende commando uit te voeren:

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

Dit controleert de adresreeks 192.168.126.0/24 op machines waarop SMB open staat en SMB-signing uitgeschakeld is. De IP-adressen die hieraan voldoen worden weggeschreven naar het bestand ‘targets.txt’.

Vervolgens maken we gebruik van de hulpprogramma’s Responder en ntlmrelayx. Responder is verantwoordelijk voor het opvangen van de Net-NTLM-hash en stuurt deze door naar ntlmrelayx, die zich vervolgens authenticeert op de opgegeven host(s) via SMB met de gekregen hash. Om dit te realiseren moeten de SMB- en HTTP-server uitgeschakeld worden in de configuratie van Responder. Dit kan door het configuratiebestand te openen en de waarden achter SMB en HTTP te veranderen naar ‘Off’. Het configuratiebestand moet er als volgt uitzien:

Daarna moet Responder gestart worden op de actieve netwerkinterface, in dit geval eth0. Dit kan door het volgende commando uit te voeren:

responder -I eth0 -d -w

Tot slot gebruiken we het hulpprogramma ntlmrelayx om de inhoud van de SAM-database van de doelsystemen te extraheren. Hiervoor starten we ntlmrelayx met het volgende commando:

python3 ntlmrelayx.py -tf targets.txt

Zodra ntlmrelayx een Net-NTLM-hash ontvangt van Responder, probeert ntlmrelayx zich te authenticeren op de systemen in het bestand targets.txt. Als de authenticatie succesvol is probeert ntlmrelayx vervolgens de inhoud van de SAM-database te extraheren. Hiervoor moeten de gebruiker, waarvan Responder de Net-NTLM-hash heeft opgevangen, lokale beheerrechten op het doelsysteem hebben. Naast het extraheren van de SAM-database is het ook mogelijk om andere systeemopdrachten uit te voeren.

Gevolgen van een succesvolle NTLM Relay aanval

De afbeelding hieronder toont een succesvolle NTLM relay, waarbij de gebruiker lokale beheerrechten had op het doelsysteem en dus de inhoud van de SAM-database geëxtraheerd kon worden.

en aanvaller zou nu in het bezit zijn van het versleutelde wachtwoord van de lokale beheerder. Dit geeft een aanvaller lokale beheerrechten op dit systeem. Dit stelt de aanvaller in staat om de versleutelde wachtwoorden van gebruikers, die een sessie hebben of kortgeleden hadden, uit het geheugen te extraheren. In het geval dat hier een domeinbeheerder tussen zit, kan een aanvaller de rechten verhogen tot Domain Admin en zo het gehele domein overnemen.

Regelmatig nemen we waar dat het wachtwoord voor de lokale Administrator gebruiker hergebruikt wordt op meerdere computers. Dit betekent dat een aanvaller met hetzelfde wachtwoord in kan loggen op meerdere computers als lokale beheerder. Dit verbreedt de aanvalsvector en vergroot de kans dat de aanvaller zijn of haar rechten kan verhogen.

Aanbeveling: SMB Signing

Systemen zijn vatbaar voor een NTLM relay aanval doordat de ontvanger de inhoud en de afkomst van het bericht niet controleert. De meest effectieve manier om deze kwetsbaarheid te verhelpen is door bedrijfsbreed SMB-signing in te schakelen.

SMB-signing is een beveiligingsmechanisme in het SMB-protocol. Als SMB-signing is ingeschakeld wordt elk SMB-bericht verstuurd met een handtekening in het SMB-header-veld. De handtekening bestaat uit de inhoud van het bericht, versleuteld met het AES-algoritme. Hiermee kan de ontvanger van het bericht controleren of de inhoud van het bericht is veranderd. Ook wordt de identiteit van de verzender geverifieerd. Als de inhoud van het bericht niet meer overeenkomt met de handtekening in het SMB-header-veld, dan weet de ontvanger dat er met het bericht geknoeid is. De ontvanger doet dan niks met dit SMB-bericht. Hierdoor is het onmogelijk om succesvol een NTLM relay aanval uit te voeren.

Hoe SMB Signing inschakelen

SMB-signing kan ingeschakeld worden door de inhoud van de registerwaarden RequireSecuritySignature en EnableSecuritySignature naar 1 te zetten. Dit moet zowel worden toegepast voor de LanManServer als de LanManWorkstation. Dit kan op twee manieren: via een systeemopdracht of via de grafische applicatie ‘Local Group Policy Editor’ (gpedit.msc).

  1. Command regel:

Voer deze opdrachten uit om de registerwaarden bij te werken:

  • 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

Start het systeem opnieuw op om de wijzigingen toe te passen.

2. Localgroup policity editor

Navigeer naar Computer Configuration > Windows Settings > Local Policies > Security Options.

Schakel de volgende regels in:

  • Microsoft network client: Digitally sign communication (always)
  • Microsoft network client: Digitally sign communication (if server agrees)
  • Microsoft network server: Digitally sign communication (always)
  • Microsoft network server: Digitally sign communication (if client agrees)

Start het systeem opnieuw op om de wijzigingen toe te passen.

3. Linux:

Bewerk het Samba-configuratiebestand:

client signing = mandatory
server signing = mandatory

Start het systeem opnieuw op om de wijzigingen toe te passen.

Conclusie

Om je netwerk te beschermen tegen NTLM relay aanvallen, is het inschakelen van SMB signing cruciaal. Het verzekert de integriteit en authenticiteit van SMB-berichten en beperkt zo een belangrijk beveiligingslek. Het implementeren van SMB signing in je netwerk kan bescherming bieden tegen potentiële aanvallers die hun privileges escaleren en je netwerk overnemen.

Relevante bronnen

Start met onze Cybersecurity Services

Bent u voorbereid om uw organisatie te verdedigen tegen cyberbedreigingen? Securance biedt robuuste Cybersecurity diensten om uw digital assets te beschermen. Onze experts kunnen uitgebreide Security Assessments uitvoeren, geavanceerde beveiligingsmaatregelen implementeren en zorgen voor voortdurende bewaking om uw netwerk te beschermen tegen mogelijke aanvallen. Neem vandaag nog contact met ons op om uw Cybersecurity te verbeteren en de toekomst van uw organisatie veilig te stellen.

SMB signing FAQ

Veelgestelde vragen over SMB signing

Wat is SMB signing?

SMB-ondertekening is een beveiligingsmechanisme in het Server Message Block (SMB)-protocol dat de authenticiteit en integriteit van SMB-communicatie helpt te garanderen. Het voegt een digitale handtekening toe aan elk SMB-bericht, waardoor de ontvanger kan controleren dat er niet met het bericht is geknoeid en de identiteit van de afzender wordt bevestigd.

Waarom is SMB signing belangrijk?

SMB-ondertekening is belangrijk omdat het bescherming biedt tegen NTLM relay-aanvallen, waarmee aanvallers SMB-berichten kunnen onderscheppen en wijzigen. Door SMB-ondertekening in te schakelen, kunnen organisaties onbevoegde toegang, geknoei met gegevens en escalatie van privileges binnen hun netwerk voorkomen.

Hoe kunnen aanvallers misbruik maken van uitgeschakelde SMB-signing?

Als SMB-ondertekening is uitgeschakeld, kunnen aanvallers NTLM relay-aanvallen uitvoeren. Ze onderscheppen legitieme authenticatieverzoeken, wijzigen ze en sturen ze door naar een doelsysteem. Hierdoor kan de aanvaller ongeautoriseerde toegang krijgen en commando's uitvoeren of toegang krijgen tot vertrouwelijke gegevens.

Hoe schakel ik SMB-signing in op Windows?

SMB-ondertekening kan worden ingeschakeld in Windows door specifieke registerwaarden in te stellen of door de Editor voor lokaal groepsbeleid te gebruiken. De vereiste registersleutels zijn EnableSecuritySignature en RequireSecuritySignature voor zowel LanManServer als LanManWorkstation. Je kunt ook navigeren naar Computerconfiguratie > Windows-instellingen > Lokaal beleid > Beveiligingsopties in de Editor voor lokaal groepsbeleid en het relevante beleid inschakelen.

Hoe schakel ik SMB ondertekening in op Linux?

Op Linux systemen kan SMB ondertekening ingeschakeld worden door het Samba configuratiebestand te bewerken. Under the global settings, add the lines 'client signing = mandatory' and 'server signing = mandatory', then restart the SMB service to apply the changes.

Welke tools worden gebruikt om een NTLM relay aanval uit te voeren?

Veel gebruikte tools om een NTLM relay aanval uit te voeren zijn NetExec, Responder en ntlmrelayx. Deze tools helpen aanvallers bij het genereren van een lijst met doelwitten, het onderscheppen van authenticatieverzoeken en het doorsturen van deze verzoeken naar systemen waarop SMB-ondertekening niet is ingeschakeld.

Wat zijn de gevolgen van een succesvolle NTLM relay aanval?

Een succesvolle NTLM relay aanval kan een aanvaller lokale beheerdersrechten geven op een doelsysteem. Hierdoor kan de aanvaller versleutelde wachtwoorden ontfutselen, toegang krijgen tot netwerkshares en mogelijk rechten laten escaleren naar Domain Admin, waardoor het hele netwerk in gevaar komt.

Kan het inschakelen van SMB signing bescherming bieden tegen alle aanvallen?

Hoewel het inschakelen van SMB-ondertekening een cruciale stap is in de bescherming tegen NTLM relay-aanvallen, is het geen wondermiddel. Organisaties moeten een uitgebreide beveiligingsstrategie implementeren met regelmatige updates, een sterk wachtwoordbeleid en netwerkbewaking om zich te beschermen tegen een breed scala aan bedreigingen.

Share this blog

juli 16, 2024

Anti-Adversary-in-the-Middle (AitM) tokens detecteren en omzeilen Binnen het Advanced Red...

    juli 15, 2024

    Wat is XXE (XML eXternal Entity)? Veel moderne webapplicaties gebruiken...

      juli 5, 2024

      Wordt het wachtwoord van de lokale administrator in jouw omgeving...