Door Anoniem: Door Erik van Straten: Door Anoniem: Het probleem zit niet bij de server maar bij de client. Om je te beschermen is het devies niet "zet geen RDP server op internet" maar "zet poort 3389 uitgaand dicht". Of snap ik dat verkeerd?
Waarschijnlijk is het verstandig om "poort 3389 uitgaand dicht" te zetten, maar de gemiddelde Nederlander heeft geen idee wat wij daarmee bedoelen, laat staan dat ze weten hoe dat moet..
Het gaat om inkomend verkeer om de RDP server connectie op te bouwen niet uitgaand. Inkomend staat dit standaard dicht op elke router/firewall die de fabriek komt uitrollen en staat de service uit in Windows (Server).
Ervan uitgaande dat je een andere Anoniem bent: wat Anoniem van 13:49 lijkt te bedoelen is het voorkómen dat je, met jouw client, slachtoffer wordt van een AitM.
Zodat ook andere lezers het begrijpen: bij een TCP-"verbinding" is er geen echte verbinding, maar versturen zowel de client als de server netwerkpakketjes met, in elk pakketje, het afzender-IP-adres, het afzender-poortnummer, het ontvanger-IP-adres en het ontvanger-poortnummer. In een antwoordpakketje zijn beide paren (afzendergegevens en ontvangergegevens) van plaats verwisseld.
In onderstaand "plaatje" betekent, in C:random, dat C het IP-adres van de client is, en het poortnumner "random", min of meer willekeurig gekozen. Aan de linkerkant worden de pakketjes van Client naar Server uitgebeeld, en rechts de retour-pakketjes.
Client
(mstsc)
v ^
From: C:random | | From: S:3389
To: S:3389 | | To: C:random
v ^
.—————————.
client-side | X # |
firewall '—————————'
v ^
From: C:random | | From: S:3389
To: S:3389 | | To: C:random
| |
Internet •••••••••••••
| |
From: C:random | | From: S:3389
To: S:3389 | | To: C:random
v ^
.—————————.
client-side | + | |
firewall '—————————'
v ^
From: C:random | | From: S:3389
To: S:3389 | | To: C:random
v ^
RDP-server
Als de firewall van de
client uitgaand "verkeer" (pakketjes) naar uitsluitend poort 3389 blokkeert (aangegeven met X), kan die client geen verbindingen opzetten met RDP-servers (die gebruik maken van poort 3389, wel als deze van een andere poort gebruikmaakt).
Als de beheerder van de server niet wil dat er vanaf Internet met poort 3389 van de RDP-server kan worden gecommuniceerd, kan hij in zijn fiirewall
inkomend verkeer voor poort 3389 blokkeren (aangegeven met +).
Voor de mensen die zich afvragen waarom de firewall van de client, pakketjes bestemd voor die client met random poortnummer doorlaat (bij # in het plaatje): daar maken firewalls een uitzondering voor, nl. zodra deze eerder (niet te lang geleden) een uitgaand pakketje met verwiselde gegevens heeft "gezien". Het gaat daarbij dus om 4 gegevens die moete kloppen; het is dus niet zo dat een aanvaller vanaf een ander IP-adres pakketjes, ongehinderd door de client-firewall, naar de client kan sturen.
Zodra de "verbinding" met de server netjes wordt gesloten (middels speciale pakketjes) zet de client-firewall de tijdelijke inkomende poort weer dicht. Dat gebeurt ook na een bepaalde periode van inactiviteit (internetstoring, server gecrashed etc).
Nb. bij NAT (Network Address Translation), meestal PNAT (P voor poort) kunnen firewalls (of firewalls in modems) het client-poortnummer en beide IP-adressen wijzigen; doordat ze dat op dezelfde manier voor in- als uitgaande pakketjes van één "verbinding" doen, merk je daar in de praktijk niks van (voorbeeld: als de client zelf pakketjes met afzender gegevens 10.0.0.1:1025 verstuurt, kan de client-firewall daar straffeloos 82.94.191.110:60000 van maken (d.w.z. deze gegevens aanpassen in uitgaande pakketjes). De server stuurt diens antwoorden dan naar 82.94.191.110:60000, waarna de client-firewall dat weer wijzigt in 10.0.0.1:1025 voordat het pakketje naar de client wordt gestuurd.
Door Anoniem: Actie nemen is dus niet nodig tenzij je service aangezet hebt en de firewall port geconfigureerd heb.
Als je een RDP-server direct op Internet wilt ontsluiten zul je inderdaad wat moeten doen. Probleem: veel te veel "beheerders" hebben dat gedaan.
Door Anoniem: De laatste alinea klopt niet, het probleem zit hem niet harstikke in de server. Het zit hem in de gebruikers/beheerders die het aanzetten en dingen niet juist configureren. Als je het allemaal juist instelt kan je de service prima configureren via een GPO en deze voorzien wordt met een certificaat uit je eigen lokale CA.
Dat helpt onvoldoende. Sowieso zul je dan een extra CA-certificaat op je PC moeten hebben, wat lang niet altijd het geval is. Het volgende probleem is dat veel mensen certificaatwaarschuwingen van RDP-servers
zó gewend zijn dat zij ze onmiddellijk wegklikken.
Maar zelfs dat is allemaal irrelevant: als je verbinding maakt met een AitM, stuurt mstsc jouw NetNTLMv2 "wachtwoord" naar die server
vóórdat je een certificaatwaarschuwing hebt gezien.
Door Anoniem: Het FEIT blijft gewoon dat men het niet juist configureert en zich vaak niet houdt aan de best practises die worden geadviseerd door de leverancier (Microsoft).
Het is bullshit wat Microsoft adviseert, want dat helpt niet tegen AitM's.
In
https://www.microsoft.com/en-us/security/business/zero-trust staat "Assume breach". Als er één of meer devices op jouw LAN gecompromitteerd zijn die zich kunnen voordoen als jouw RDP-server, en je opent daarmee een RDP verbinding, heeft de aanvaller jouw NetNTLMv2 credentials. Ongeacht wat voor certificaat je op jouw
echte RDP-server zet, want die server speelt geen rol bij zo'n verbinding.
Door Anoniem: Dit hele topic slaat nergens op, volg gewoon de aangegeven adviezen op die MS duidelijk aangeeft.
Ik vind het leuk om kennis te delen (in het topic de kennis opgedaan door GoSecure), maar als jij het beter weet vind ik dat ook helemaal prima. Fijne avond!