Skip to main content

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

FTot 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 Systems: 

Bewerk het Samba-configuratiebestand: 

client signing = mandatory
server signing = mandatory

 

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.