Wij zijn |

SMB veilig instellen: SMB misconfiguraties (SMBv1 – SMB Signing)

SMB icon

Tijdens onze pentests op interne bedrijfsnetwerken en Active Directory-omgevingen komen we regelmatig misconfiguraties tegen die de veiligheid van het netwerk in gevaar kunnen brengen. Het SMB-protocol blijkt daarbij vaak een punt van aandacht. In deze blogpost gaan we dieper in op veelvoorkomende misconfiguraties binnen het SMB-protocol, de risico’s die hiermee gepaard gaan en hoe organisaties SMB veilig kunnen configureren om hun netwerk te beschermen.

Wat is SMB?

SMB staat voor Server Message Block en is een netwerkprotocol daterend uit 1983, ontwikkeld bij IBM om toegang tot bestanden en printers te delen binnen een netwerk.

In 1996 introduceerde Microsoft hun versie van het SMB 1.0-protocol, bekend als het Common Internet File System (CIFS). In 2006 kwam SMB 2.0 uit, samen met Windows Vista en Server 2008, waarin naast nieuwe functionaliteiten ook de beveiliging van het protocol werd verbeterd. Sindsdien zijn bij nieuwe Windows-release verdere verbeteringen uitgebracht, zoals SMB 2.1 met Windows 7, SMB 3.0 bij Windows 8, en de meest recente versie, SMB 3.1.1, met Windows 10 en Server 2016.

SMB wordt door de meeste mensen dagelijks gebruikt. De meeste fileshares werken namelijk over SMB. Daarnaast kun je ook printers delen binnen het netwerk delen, of een scannetje vanuit de printer in je eigen mapje op een fileshare zetten. Ook wordt het binnen een Active Directory-omgeving op de achtergrond gebruikt om policies en scripts binnen te halen tijdens het inloggen.

Hoe werkt het authenticatieproces bij SMB?

Voor het opzetten van een veilige verbinding tussen client en server maakt SMB gebruik van een authenticatieproces, waarbij vaak NTLMv2-authenticatie wordt toegepast. Dit proces omvat een challenge-response-mechanisme, waarin de server een “challenge” (unieke waarde) stuurt naar de client (voor technische details over hoe dit proces werkt verwijzen we naar https://pentests.nl/pentest-blog/verschil-ntlm-ntlmv2-lm/). De client berekent vervolgens een response door deze challenge te combineren met een versleuteld wachtwoordhash en stuurt deze terug naar de server. Het resultaat, de NTLMv2-response, kan door een aanvaller echter worden onderschept en offline gekraakt worden met tools zoals Hashcat, waardoor uiteindelijk het wachtwoord achterhaald kan worden.

Indien SMB signing niet is geconfigureerd, biedt deze NTLMv2-authenticatie ook de mogelijkheid voor een relay-aanval. Bij een onveilige configuratie kan een aanvaller de NTLMv2-response relayeren naar een andere server en zo toegang krijgen zonder dat de gebruiker dit merkt. (Meer over relay-aanvallen en SMB signing volgt verderop in deze blogpost.)

Veelvoorkomende onveilige SMB configuraties

SMBv1 ingeschakeld

Een veelvoorkomende misconfiguratie is dat SMB 1.0 niet is uitgeschakeld. Wanneer SMBv1 actief blijft, kunnen clients verbinding maken via dit verouderde protocol, dat zwakkere versleuteling en beperkte beveiligingsmechanismen bevat. Hierdoor is het kwetsbaar voor diverse aanvallen en biedt het onvoldoende bescherming tegen moderne bedreigingen. Het uitschakelen van SMBv1 helpt het netwerk te beveiligen en dwingt clients om via veiligere SMB-versies verbinding te maken.

SMB signing wordt niet afgedwongen

Een andere misconfiguratie is het niet afdwingen van SMB signing. Dit beveiligingsmechanisme bestaat al sinds de eerste SMB-versies en is door de jaren heen verbeterd. Waar de eerste versie gebruik maakte van MD5 voor handtekeningverificatie, wordt in de meest recente versie AES-128-GMAC gebruikt.

SMB signing voegt een digitale handtekening toe aan elk bericht. Deze handtekening, berekend als een hash van het hele bericht, wordt toegevoegd aan de SMB-header en is gebaseerd op een geheime sessiesleutel die alleen de client en server kennen (deze sleutel wordt afgeleid als HMAC-MD5(NTLMv2-hash, NTLMv2-response)). Hierdoor kan de server iedere wijziging in het bericht detecteren, aangezien een gemanipuleerd bericht een ongeldige hash oplevert. Het SMB-bericht bevat informatie over de afzender en ontvanger; dankzij SMB signing kunnen deze waardes niet worden aangepast zonder detectie. Dit mechanisme voorkomt effectief relay-aanvallen.

Wat is een relay aanval?

Een relay-aanval is een type Man-in-the-Middle-aanval waarbij een aanvaller berichten tussen twee partijen onderschept en zonder wijziging doorstuurt, zodat beide partijen denken met elkaar te communiceren. Zonder dat de aanvaller toegang heeft tot het wachtwoord, kan hij zich zo voordoen als de client en toegang verkrijgen.

Relay-aanvallen werken alleen als SMB signing niet is afgedwongen. Met SMB signing is namelijk de geheime sessiesleutel nodig om een geldige hash te berekenen. Zonder deze sleutel kan de aanvaller geen correcte handtekening maken, waardoor de server het doorgestuurde bericht niet accepteert. Hierdoor blokkeert SMB signing effectief deze aanvalsvector.

Uitgaand SMB-verkeer

Een laatste veelvoorkomende misconfiguratie is het toestaan van SMB-verkeer over het internet. Hoewel dit niet direct met de SMB-configuratie zelf te maken heeft, willen we het toch benadrukken vanwege de risico’s die ermee gepaard gaan. Er zijn weinig tot geen legitieme redenen waarom SMB-verkeer naar het internet zou moeten worden toegelaten, en het blokkeren hiervan kan een belangrijke beveiligingsmaatregel zijn.

Een groot risico van uitgaand SMB-verkeer is dat het SMB-authenticatieproces, waaronder het Net-NTLMv2-authenticatieschema, hierbij onderdeel is. Zoals eerder besproken, kan de Net-NTLMv2-hash offline worden gekraakt. Bovendien vindt de SMB-authenticatie automatisch plaats; als een gebruiker – of een aanvaller – bijvoorbeeld per ongeluk een internetadres als netwerkshare invoert, wordt automatisch het Net-NTLMv2-response naar de externe server gestuurd.

Een aanvaller die deze hash onderschept, kan deze offline kraken en zo het wachtwoord achterhalen. Met deze inloggegevens kan de aanvaller vervolgens toegang verkrijgen tot andere netwerkdiensten, zoals een openstaande RDP-verbinding (Remote Desktop Protocol). Het blokkeren van uitgaand SMB-verkeer voorkomt dat Net-NTLMv2-authenticatiegegevens onnodig worden blootgesteld aan het internet en beschermt het interne netwerk tegen dit type aanvallen.

 

Hoe SMB veilig configureren

Hoe SMBv1 uitschakelen

Om SMB 1.0 uit te schakelen kun je onderstaande stappen volgen.

Open Powershell (als Administrator) en voer deze commando’s uit:

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

Hoe SMB signing aanzetten

Om SMB signing af te dwingen kun je onderstaande stappen volgen.

Open Powershell (als Administrator) en voer deze commando’s uit:

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

Hoe SMB naar internet blokkeren

Zoals aangegeven is dit eigenlijk geen misconfiguratie binnen SMB, maar een misconfiguratie van de uitgaande firewall binnen het netwerk. Stel een regel in om uitgaand TCP-verkeer over poort 139 en 445 tegen te houden.

 

Vraag vrijblijvend een pentest aan

Wil je weten hoe veilig jullie eigen Active Directory-netwerk is ingesteld? Of inzicht krijgen in de algehele beveiliging van het interne bedrijfsnetwerk? Met een pentest sporen we alle veelvoorkomende misconfiguraties en andere kwetsbaarheden op en geven we een helder beeld van de huidige beveiligingsstaat van het bedrijfsnetwerk.

Neem vrijblijvend contact met ons op voor meer informatie.

Hoe kunnen wij u helpen?

QR Codes: Het onverwachte wapen in Device Code Phishing

Device code phishing, net als aanvallen via Adversary-in-the-middle (AiTM), vertegenwoordigt een geavanceerde vorm van cyberdreiging die zich onderscheidt van traditionele phishing. Device code phishing exploiteert de ‘OAuth2 Device Authorization Grant flow‘ van Microsoft Azure, die gebruikers in staat stelt zich aan te melden bij apparaten met beperkte invoermogelijkheden.

read more

CORS: het belang van Cross-Origin Resource Sharing

Bij onze klanten zien we een toenemende implementatie van Cross-Origin Resource Sharing (CORS). Helaas constateren we ook een stijging in het aantal onveilig geconfigureerde CORS-implementaties. In deze blog duiken we dieper in wat CORS is, de meest voorkomende misconfiguraties en hun potentiële risico’s, en hoe je sterke CORS-regels kunt instellen om je webapplicaties te beschermen.

read more