Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru

Kad kādu dienu priekšnieks uzdod jautājumu: "Kāpēc dažiem cilvēkiem ir attālināta piekļuve darba datoram, nesaņemot papildu atļaujas lietošanai?"
Rodas uzdevums “aizvērt” nepilnību.

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru
Ir daudz lietojumprogrammu tālvadībai tīklā: Chrome attālā darbvirsma, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control u.c. Ja Chrome attālajai darbvirsmai ir oficiāla rokasgrāmata, lai cīnītos pret piekļuvi pakalpojumam, TeamViewer ir licencēšanas ierobežojumi attiecībā uz laiku vai pieprasījumiem. no tīkla un lietotāji vienā vai otrā veidā “spīd” ar administratoriem, tad daudzu iecienītākais personīgai lietošanai - AnyDesk joprojām prasa īpašu uzmanību, it īpaši, ja priekšnieks teica “Nē!”

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru
Ja zināt, kas ir tīkla paketes bloķēšana pēc tās satura un esat ar to apmierināts, tad pārējais materiāls
nav paredzēts tev.

Mēģinot iet no pretējā, patiesībā Tiešsaistē tas saka, kas ir jāatļauj, lai programma darbotos; attiecīgi DNS ieraksts tika bloķēts *.net.anydesk.com. Bet AnyDesk nav vienkārša; tai nerūp domēna vārda bloķēšana.

Kādreiz es atrisināju “Anyplace Control” bloķēšanas problēmu, kas mums nonāca ar kādu apšaubāmu programmatūru, un tā tika atrisināta, bloķējot tikai dažus IP (es dublēju antivīrusu). Problēma ar AnyDesk, kad es manuāli savācu vairāk nekā duci IP adrešu, uzmāja mani izvairieties no ikdienas roku darba.

Tika arī atklāts, ka “C:ProgramDataAnyDesk” ir vairāki faili ar iestatījumiem utt., un failā ad_svc.trace Tiek apkopoti notikumi par savienojumiem un kļūmēm.

1. Novērošana

Kā jau minēts, vietnes *.anydesk.com bloķēšana nedeva nekādus rezultātus programmas darbībā, tika nolemts analizēt programmēt uzvedību stresa situācijās. TCPView no Sysinternals jūsu rokās un aiziet!

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru

1.1. Redzams, ka “karājas” vairāki mūs interesējoši procesi, un mūs interesē tikai tas, kurš sazinās ar adresi no ārpuses. Porti, kuriem tas savieno, ir atlasīti, no tā, ko es redzēju: 80, 443, 6568. 🙂 Mēs noteikti nevaram bloķēt 80 un 443.

1.2. Pēc adreses bloķēšanas caur maršrutētāju mierīgi tiek izvēlēta cita adrese.

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru

1.3. Konsole ir mūsu VISS! Mēs nosakām PID, un tad man nedaudz paveicās, ka pakalpojums uzstādīja AnyDesk, tāpēc mūsu meklētais PID bija vienīgais.
1.4. Mēs nosakām servisa servera IP adresi no procesa PID.

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru

2. Sagatavošana

Tā kā IP adrešu noteikšanas programma, iespējams, darbosies tikai uz mana datora, man nav ierobežojumu attiecībā uz ērtībām un slinkumu, tāpēc C#.

2.1. Visas nepieciešamās IP adreses noteikšanas metodes jau ir zināmas, tas vēl ir jāīsteno.

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й элемент без кавычек
}

Tāpat mēs atrodam pakalpojumu, kas izveidoja savienojumu, es došu tikai galveno līniju

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

Kuras rezultāts būs:

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru
No rindas, līdzīgi kā iepriekšējā darbībā, izvelciet 3. kolonnu un noņemiet visu pēc “:”. Rezultātā mums ir vēlamais IP.

2.2. IP bloķēšana operētājsistēmā Windows. Ja Linux ir Blackhole un iptables, tad IP adreses bloķēšanas metode vienā rindā, neizmantojot ugunsmūri, operētājsistēmā Windows izrādījās neparasta,
bet kādi tur bija instrumenti...

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

Galvenais parametrs "ja 1" nosūtīt maršrutu uz Loopback (varat parādīt pieejamās saskarnes, palaižot maršruta drukāšanu). UN SVARĪGI! Tagad programma ir jāpalaiž ar administratora tiesībām, jo maršruta maiņai nepieciešams pacēlums.

2.3. Identificēto IP adrešu parādīšana un saglabāšana ir triviāls uzdevums, un tas neprasa paskaidrojumus. Ja jūs par to domājat, varat apstrādāt failu ad_svc.trace Pats AnyDesk, bet es par to nedomāju uzreiz +, iespējams, tam ir kāds ierobežojums.

2.4. Programmas dīvainā nevienmērīgā uzvedība ir tāda, ka Windows 10 "uzdevumos" servisa process tiek restartēts automātiski, operētājsistēmā Windows 8 tas beidzas, atstājot tikai konsoles procesu un bez atkārtotas savienošanas, kopumā tas ir neloģiski un tas ir neprecīzi.

Procesa, kas ir savienots ar serveri, noņemšana ļauj “piespiest” atkārtoti izveidot savienojumu ar nākamo adresi. Tas tiek ieviests tāpat kā iepriekšējās komandas, tāpēc es to vienkārši sniegšu:

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

Turklāt palaidiet programmu AnyDesk.

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

2.5. Mēs pārbaudīsim AnyDesk statusu reizi minūtē (vai biežāk?), un, ja tas ir savienots, t.i. savienojums IZVEIDOTS - bloķējiet šo IP, un atkal visu no jauna - pagaidiet, kamēr savienosies, bloķējiet un gaidiet.

3. Uzbrukums

Kods tika "ieskicēts" un tika nolemts vizualizēt procesu "+" norāda atrasto un bloķēto IP, un "."—atkārtojiet pārbaudi bez veiksmīga kaimiņa savienojuma no AnyDesk.

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru

Projekta kods

Rezultātā…

Analīze par iespēju bloķēt lietojumprogrammu attālai datora vadībai tīklā, izmantojot AnyDesk piemēru
Programma darbojās vairākos datoros ar dažādām Windows operētājsistēmām ar AnyDesk 5 un 6 versijām. Vairāk nekā 500 iterāciju, tika savāktas aptuveni 80 adreses. Par 2500-87 un tā tālāk...

Laika gaitā bloķēto IP skaits sasniedza 100+.

Saite uz finālu teksta fails ar adresēm: laiks и два

Tas ir izdarīts! IP adrešu kopums tika pievienots galvenā maršrutētāja noteikumiem, izmantojot skriptu, un AnyDesk vienkārši nevar izveidot ārēju savienojumu.

Ir dīvains punkts, pēc sākotnējiem žurnāliem ir skaidrs, ka adrese ir saistīta ar informācijas nodošanu boot-01.net.anydesk.com. Protams, mēs parasti bloķējām visus *.net.anydesk.com saimniekdatorus, taču tas nav dīvaini. Katru reizi ar parastu ping no dažādiem datoriem šis domēna nosaukums piešķir citu IP. Pārbaude operētājsistēmā Linux:

host boot-01.net.anydesk.com

tāpat kā DNSLookup tie dod tikai vienu IP adresi, taču šī adrese ir mainīga. Analizējot TCPView savienojumu, mums tiek atgriezti šāda veida IP adrešu PTR ieraksti relejs-*.net.anydesk.com.

Teorētiski: tā kā ping dažreiz tiek nosūtīts uz nezināmu atbloķētu saimniekdatoru boot-01.net.anydesk.com mēs varam atrast šos IP un bloķēt, padarīt šo ieviešanu par parastu skriptu Linux OS, šeit nav nepieciešams instalēt AnyDesk. Analīze parādīja, ka šie IP bieži vien "krustojas"ar tiem, kas atrasti no mūsu saraksta. Iespējams, ka programma pieslēdzas tikai šim resursdatoram, pirms tā sāk "šķirot" zināmos IP. Iespējams, vēlāk rakstu papildināšu ar resursdatora meklēšanas 2. daļu, lai gan šobrīd pati programma netiek instalēta tīkla ārējā savienojumā kopumā.

Ceru, ka iepriekš minētajā nesaskatījāt neko pretlikumīgu, un AnyDesk veidotāji pret manām darbībām izturēsies sportiski.

Avots: www.habr.com

Pievieno komentāru