Wanneer de baas op een mooie dag de vraag stelt: "Waarom hebben sommigen toegang op afstand tot de werkcomputer zonder extra toestemming om deze te gebruiken?",
doet zich de taak voor om de ‘achterdeur’ te sluiten.

Er zijn voldoende applicaties voor externe toegang via het netwerk: Chrome Remote Desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, enz. Als Chrome Remote Desktop een officiële handleiding heeft om toegang tot de service tegen te gaan, heeft TeamViewer licentiebeperkingen qua tijd of netwerkverzoeken en zijn gebruikers, ‘zuchtend’, hoe dan ook zichtbaar voor de beheerders, dan is de favoriete keuze voor persoonlijk gebruik — AnyDesk nog steeds een aandachtspunt, vooral als de baas zegt "Verboden!".

Als u weet wat netwerkpakketblokkering op basis van de inhoud is en u tevreden bent, dan is het overige materiaal
niet voor u. Proberend vanaf de andere kant te redeneren, wordt er op
gezegd wat toegestaan moet zijn voor het functioneren van het programma, en daarom is het DNS-record *.net.anydesk.com geblokkeerd. Maar AnyDesk is niet eenvoudig, het blokkeren van de domeinnaam heeft geen effect op hem.Eens had ik een probleem opgelost met het blokkeren van "Anyplace Control" dat bij ons kwam met twijfelachtige software, en dat was opgelost door slechts enkele IP's te blokkeren (ik ondersteunde de antivirus). De uitdaging bij AnyDesk, nadat ik handmatig meer dan tien IP-adressen had verzameld,
moest aanmoedigen om van het routinematige handwerk af te komen. Ook werd ontdekt dat er in "C:ProgramDataAnyDesk" verschillende bestanden met instellingen en dergelijke zijn, en in het bestand
ad_svc.trace worden gebeurtenissen over verbindingen en mislukte pogingen verzameld. 1. Observatie
Zoals al eerder vermeld, gaf het blokkeren van *.anydesk.com geen resultaat in de werking van het programma, er werd besloten het gedrag van het programma in stresssituaties te analyseren.
. TCPView van Sysinternals in de hand en aan de slag! 1.1. Het is duidelijk dat er verschillende interessante processen ‘hangen’, en alleen diegene die verbinding maakt met een extern adres is voor ons relevant. De poorten waarmee verbinding wordt gemaakt zijn: 80, 443, 6568. 🙂 Poorten 80 en 443 kunnen we zeker niet blokkeren.1.2. Na het blokkeren van het adres via de router, wordt gewoon een ander adres geselecteerd.

1.1. Het is duidelijk dat er verschillende interessante processen actief zijn, en alleen degene die verbinding maakt met een extern adres is voor ons relevant. De poorten die worden doorlopen, zijn: 80, 443, 6568. 🙂 80 en 443 kunnen we zeker niet blokkeren.
1.2. Na het blokkeren van het adres via de router kan eenvoudig een ander adres worden gekozen.

1.3. De console is alles! We bepalen de PID en ik had een beetje geluk dat AnyDesk als service was geïnstalleerd, dus de gezochte PID is de enige.
1.4. Bepalen van het IP-adres van de services op basis van de PID van het proces.

2. Voorbereiding
Aangezien het programma voor het achterhalen van IP-adressen waarschijnlijk alleen op mijn pc zal werken, heb ik geen beperkingen wat betreft gemak en luiheid, daarom C#.
2.1. Alle methoden voor het achterhalen van het gewenste IP-adres zijn al bekend, het enige wat nog resteert is de implementatie.
string pid1_; // we achterhalen de PID van de AnyDesk-service
using (var p = new Process())
{p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = " /c "tasklist.exe /fi "imagename eq AnyDesk.exe" /NH /FO CsV | findstr "Services""";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.StandardOutputEncoding = Encoding.GetEncoding("CP866");
p.Start();
string output = p.StandardOutput.ReadToEnd();
string[] pid1 = output.Split(','); // we vertalen het antwoord naar een array
pid1_ = pid1[1].Replace(""", ""); // we nemen het 2e element zonder aanhalingstekens
}Op dezelfde manier vinden we de service die de verbinding heeft gemaakt, ik geef alleen de belangrijkste regel.
p.StartInfo.Arguments = " /c " netstat -n -o | findstr /I " + pid1_ + " | findstr "ESTABLISHED""";Het resultaat hiervan zal zijn:
![]()
Uit de regel halen we, zoals in de vorige stap, de 3e kolom en verwijderen we alles wat na ":" komt. Het resultaat is het gewenste IP.
2.2. Blokkering van IP in Windows. Als er in Linux Blackhole en iptables zijn, bleek de methode voor het blokkeren van een IP-adres in één regel, zonder het gebruik van een firewall, in Windows ongebruikelijk te zijn,
maar goed, wat voor tools hadden we…
route add ons_gevonden_IP_adres mask 255.255.255.255 10.113.113.113 if 1 -pDe sleutelparameter "if 1" stuurt de route naar Loopback (De beschikbare interfaces kunnen worden weergegeven door route print uit te voeren). En HET IS BELANGRIJK! Nu moet het programma worden uitgevoerd met beheerdersrechten, omdat het wijzigen van de route verhoogde rechten vereist.
2.3. Het weergeven en opslaan van de gevonden IP-adressen is triviaal en vereist geen uitleg. Als je erover nadenkt, zou je ook het bestand worden gebeurtenissen over verbindingen en mislukte pogingen verzameld. van AnyDesk zelf kunnen verwerken, maar daar had ik niet meteen aan gedacht + er gelden mogelijk beperkingen voor.
2.4. Het vreemde inconsistente gedrag van het programma is dat wanneer het proces van de dienst in Windows 10 wordt beëindigd met "taskkill", het automatisch opnieuw wordt opgestart, terwijl het in Windows 8 stopt, alleen het consoleproces overlaat en zonder opnieuw te verbinden, in het algemeen onlogisch en onnauwkeurig.
Het verwijderen van het proces dat met de server is verbonden, maakt het mogelijk om opnieuw te verbinden met het volgende adres. Dit wordt op dezelfde manier geïmplementeerd als de vorige commando's, daarom noem ik alleen:
p.StartInfo.Arguments = "/c taskkill /PID " + pid1_ + " /F";Daarnaast starten we het programma AnyDesk.
//запускаем программу которая расположена по пути path_pro
if (File.Exists(path_pro)){
Process p1 = Process.Start(path_pro);}2.5. We zullen de status van AnyDesk om de minuut (of vaker?) controleren, en als het verbinding heeft gemaakt, dat wil zeggen als de verbinding ESTABLISHED is — dit IP blokkeren, en opnieuw beginnen — wachten tot het verbinding maakt, blokkeren en wachten.
3. Aanval
Er is code "opgesteld" voor de visualisatie van het proces.+We geven de gevonden en geblokkeerde IP's aan, en.herhalen de controle zonder succesvolle verbinding vanaf AnyDesk.

→
Als resultaat…

Het programma werkte op verschillende computers met verschillende versies van Windows, met AnyDesk versies 5 en 6. Bij 500 iteraties werden ongeveer 80 adressen verzameld. Bij 2500 — 87, en zo verder…
In de loop van de tijd groeide het aantal geblokkeerde IP's tot meer dan 100.
Link naar het finale tekstbestand met adressen: en
Het is gedaan! Het IP-pool via het script is toegevoegd aan de regels van de hoofdrouter en AnyDesk kan eenvoudigweg geen externe verbinding maken.
Er is een vreemde zaak, uit de oorspronkelijke logs blijkt dat het adres boot-01.net.anydesk.com. We hebben natuurlijk alle hostnames *.net.anydesk.com geblokkeerd met een algemene regel, maar de bijzonderheid ligt niet daar. Bij een gewone ping vanuit verschillende computers geeft deze domeinnaam elke keer een ander IP. Controle in Linux:
host boot-01.net.anydesk.com
net als DNSLookup geeft slechts één IP-adres, maar dit adres is variabel. Bij de analyse van TCPView krijgen we PTR-records van IP-adressen van het type relay-*.net.anydesk.com.
Theoretisch: aangezien ping soms doorgaat naar een onbekende, niet-blokkerende host boot-01.net.anydesk.com kunnen we deze IP's vinden en blokkeren, deze implementatie kan een gewoon script zijn voor Linux, hier is het juist niet nodig om AnyDesk te installeren. Analyse toonde aan dat deze IP's vaak "overlappen" met de gevonden uit onze lijst. Misschien is dit precies de host waarmee het programma verbinding maakt voordat het begint met het "doorlopen" van bekende IP's. Waarschijnlijk zal ik later het artikel aanvullen met een tweede deel over het zoeken naar hosts, hoewel de programma zelf momenteel helemaal geen externe verbinding maakt binnen het netwerk.
Ik hoop dat u niets illegaals in het bovenstaande heeft gezien, en de makers van AnyDesk zullen mijn acties sportief opvatten.
Bron: habr.com
