Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk

Da chefen en dag rejser spørgsmålet: "Hvorfor har nogle mennesker fjernadgang til en arbejdscomputer uden at få yderligere tilladelser til brug?",
der er en opgave at "dække over" et smuthul.

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk
Der er masser af applikationer til fjernstyring over netværket: Chrome remote desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control osv. Hvis Chrome remote desktop har en officiel manual til at bekæmpe adgang til tjenesten, har TeamViewer licensbegrænsninger på tid eller anmodninger fra netværket og brugere, der "bider tænder" på en eller anden måde "shinner" med administratorerne, så er manges favorit til personlig brug - AnyDesk kræver stadig særlig opmærksomhed, især hvis chefen sagde "Nej!".

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk
Hvis du ved, hvad blokering af en netværkspakke er ved dens indhold, og det passer dig, så resten af ​​materialet
ikke tilsigtet for dig.

Forsøger at gå fra det modsatte, faktisk Online der står hvad der skal være tilladt for at programmet kan virke, henholdsvis DNS-posten blev blokeret *.net.anydesk.com. Men AnyDesk er ikke simpelt, den er ligeglad med at blokere et domænenavn.

Engang løste jeg problemet med at blokere "Anyplace Control", som kom til os med noget tvivlsomt software, og det blev løst ved kun at blokere nogle få IP'er (jeg sikrede antivirussen). Problemet med AnyDesk, efter at jeg manuelt indsamlede mere end et dusin IP-adresser, provokeret komme væk fra rutinemæssigt manuelt arbejde.

Det blev også konstateret, at der i "C: ProgramDataAnyDesk" er en række filer med indstillinger osv., og i filen ad_svc.trace hændelser om forbindelser og fejl indsamles.

1. Observation

Som allerede nævnt gav blokering af *.anydesk.com ingen resultater i programmet, det blev besluttet at analysere programmere adfærd i stressede situationer. TCPView fra Sysinternals i hånden og gå!

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk

1.1. Det kan ses, at flere processer af interesse for os "hænger", og kun den, der kommunikerer med adressen udefra, er af interesse for os. Portene, som den forbinder til, flyttes, efter hvad jeg så det: 80, 443, 6568. 🙂 80 og 443 kan vi bestemt ikke blokere.

1.2. Efter at have blokeret adressen gennem routeren, vælges en anden adresse stille og roligt.

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk

1.3. Vores konsol er ALT! Vi bestemmer PID'en og så var jeg lidt heldig at AnyDesk blev installeret af tjenesten, henholdsvis den PID jeg ledte efter er den eneste.
1.4. Vi bestemmer IP-adressen på serviceserveren ud fra processens PID.

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk

2. Forberedelse

Da programmet til at opdage IP-adresser sandsynligvis kun vil virke på min pc, har jeg ingen begrænsninger på bekvemmelighed og dovenskab, så C#.

2.1. Alle metoder til at identificere den ønskede IP-adresse er allerede kendt, det mangler at blive implementeret.

string pid1_;//узнаем PID сервиса AnyDesk
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(',');//переводим ответ в массив
 pid1_ = pid1[1].Replace(""", "");//берем 2й элемент без кавычек
}

På samme måde finder vi den tjeneste, der etablerede forbindelsen, jeg vil kun give hovedlinjen

p.StartInfo.Arguments = "/c " netstat  -n -o | findstr /I " + pid1_ + " | findstr "ESTABLISHED""";

Resultatet af det bliver:

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk
Fra linjen, på samme måde som det foregående trin, udtrækker vi den 3. kolonne og fjerner alt efter ":". Som et resultat har vi vores ønskede IP.

2.2. IP-blokering i Windows. Hvis Linux har Blackhole og iptables, viste metoden til at blokere en IP-adresse på én linje uden at bruge en firewall sig at være usædvanlig i Windows,
Men hvilke værktøjer var...

route add наш_найденный_IP_адрес mask 255.255.255.255 10.113.113.113 if 1 -p

Nøgleparameter "hvis 1" send ruten til Loopback (Du kan vise de tilgængelige grænseflader ved at køre ruteprint). Og VIGTIGT! Nu skal programmet køres med administratorrettighederfordi ændring af ruten kræver elevation.

2.3. Visning og lagring af de identificerede IP-adresser er en triviel opgave og kræver ingen forklaring. Hvis du tænker over det, kan du behandle filen ad_svc.trace AnyDesk selv, men jeg tænkte ikke umiddelbart over det + måske er der en begrænsning på det.

2.4. Programmets mærkelige ulige opførsel er, at når serviceprocessen er "taskkilled" i Windows 10, genstarter den automatisk, i Windows 8 slutter den og efterlader kun konsolprocessen, og uden at genoprette forbindelsen er den generelt ulogisk og unøjagtig.

Sletning af en proces, der har oprettet forbindelse til serveren, giver dig mulighed for at "tvinge" en genforbindelse til den næste adresse. Det er implementeret på samme måde som de tidligere kommandoer, så jeg giver kun:

p.StartInfo.Arguments = "/c taskkill /PID " + pid1_ + " /F";

Start desuden AnyDesk-programmet.

 //запускаем программу которая расположена по пути path_pro
if (File.Exists(path_pro)){ 
Process p1 = Process.Start(path_pro);}

2.5. Vi tjekker status for AnyDesk en gang i minuttet (eller oftere?), og hvis den er tilsluttet, dvs. forbindelse ETABLERET - bloker denne IP, og igen igen - vent til den opretter forbindelse, bloker og vent.

3. Overfald

Koden blev "udarbejdet", det blev besluttet at visualisere processen "+" angiv fundet og blokeret IP, og "." - gentaget kontrol uden vellykket forbindelse fra AnyDesk.

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk

Projektkode

Som resultat…

Analyse af muligheden for at blokere en applikation til fjernstyring af en computer over et netværk ved at bruge eksemplet med AnyDesk
Programmet fungerede på flere computere med forskellige Windows OS, med AnyDesk version 5 og 6. Omkring 500 adresser blev indsamlet i 80 iterationer. For 2500 - 87 og så videre ...

Over tid nåede antallet af blokerede IP'er 100+.

Link til finalen tekstfil med adresser: tid и два

Det er gjort! En pulje af IP-adresser føjes til reglerne for hovedrouteren via et script, og AnyDesk kan simpelthen ikke oprette en ekstern forbindelse.

Der er et mærkeligt øjeblik, ifølge de indledende logfiler er det klart, at adressen er involveret i overførslen af ​​oplysninger boot-01.net.anydesk.com. Vi har selvfølgelig blokeret alle *.net.anydesk.com værter som en generel regel, men det er ikke mærkeligt. Hver gang et normalt ping fra forskellige computere giver dette domænenavn en anden IP. Tjek i Linux:

host boot-01.net.anydesk.com

ligesom DNSLookup giver de kun én IP-adresse, men denne adresse er variabel. Når vi parser en TCPView-forbindelse, får vi PTR-registreringer af IP-adresser som f.eks relæ-*.net.anydesk.com.

Teoretisk: da ping nogle gange går til en ukendt ublokeret vært boot-01.net.anydesk.com vi kan finde disse ip og blokere, gøre denne implementering til et almindeligt script under Linux OS, her behøver du ikke installere AnyDesk. Analysen viste, at disse IP'er ofte er "krydse" med dem, der er fundet fra vores liste. Måske er dette netop denne vært, som programmet forbinder til, før det begynder at "sortere" kendte IP'er. Formentlig senere vil jeg supplere artiklen med 2. del af værtssøgninger, selvom det pt. programmet selv installerer ikke outer join generelt.

Jeg håber, at du ikke så noget ulovligt i ovenstående, og skaberne af AnyDesk vil behandle mine handlinger på en sporty måde.

Kilde: www.habr.com

Tilføj en kommentar