Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk

Quan un dia el cap planteja la pregunta: "Per què algunes persones tenen accés remot a un ordinador de treball sense obtenir permisos addicionals per al seu ús?",
hi ha una tasca per "tapar" una llacuna.

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk
Hi ha moltes aplicacions per al control remot a la xarxa: escriptori remot Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, etc. Si l'escriptori remot Chrome té un manual oficial per combatre l'accés al servei, TeamViewer té restriccions de llicència a temps o sol·licituds. de la xarxa i els usuaris "apreten les dents" d'alguna manera "brillen" amb els administradors, llavors el favorit de molts per a ús personal - AnyDesk encara requereix una atenció especial, sobretot si el cap va dir "No!".

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk
Si sabeu què és el bloqueig d'un paquet de xarxa pel seu contingut i us convé, la resta del material
no previst per tu.

Intentant anar des del contrari, de fet Online diu què s'ha de permetre perquè el programa funcioni, respectivament, el registre DNS s'ha bloquejat *.net.anydesk.com. Però AnyDesk no és senzill, no li importa bloquejar un nom de domini.

Una vegada vaig resoldre el problema de bloquejar "Anyplace Control" que ens va arribar amb algun programari dubtós, i es va solucionar bloquejant només unes poques IP (he assegurat l'antivirus). El problema amb AnyDesk, després d'haver recollit manualment més d'una dotzena d'adreces IP, provocat allunyar-se del treball manual rutinari.

També es va trobar que a "C: ProgramDataAnyDesk" hi ha una sèrie de fitxers amb configuració, etc., i al fitxer ad_svc.trace es recullen esdeveniments sobre connexions i errors.

1. Observació

Com ja s'ha esmentat, el bloqueig de *.anydesk.com no va donar cap resultat al programa, es va decidir analitzar Comportament del programa en situacions d'estrès. TCPView des de Sysinternals a la mà i va!

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk

1.1. Es pot veure que diversos processos que ens interessen estan “penjats”, i només ens interessa el que es comunica amb l'adreça des de l'exterior. Es mouen els ports als quals es connecta, pel que el vaig veure: 80, 443, 6568. 🙂 80 i 443 definitivament no podem bloquejar.

1.2. Després de bloquejar l'adreça a través de l'encaminador, se selecciona una altra adreça en silenci.

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk

1.3. La nostra consola ho és TOT! Determinem el PID i després vaig tenir una mica de sort que AnyDesk fos instal·lat pel servei, respectivament, el PID que buscava és l'únic.
1.4. Determinem l'adreça IP del servidor de servei pel PID del procés.

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk

2. Preparació

Com que el programa per descobrir adreces IP probablement només funcionarà al meu ordinador, no tinc restriccions de comoditat i mandra, per tant, C#.

2.1. Tots els mètodes per identificar l'adreça IP desitjada ja es coneixen, encara queda per implementar.

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

De la mateixa manera, trobem el servei que va establir la connexió, només donaré la línia principal

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

El resultat del qual serà:

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk
De la línia, de manera semblant al pas anterior, extreu la 3a columna i traiem tot després del ":". Com a resultat, tenim la nostra IP desitjada.

2.2. Bloqueig d'IP a Windows. Si Linux té Blackhole i iptables, el mètode de bloquejar una adreça IP en una línia, sense utilitzar un tallafoc, va resultar inusual a Windows,
Però quines eines eren...

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

Paràmetre clau "si 1" envia la ruta a Loopback (podeu mostrar les interfícies disponibles executant route print ). I IMPORTANT! Ara cal executar el programa amb drets d'administradorperquè canviar la ruta requereix elevació.

2.3. Mostrar i desar les adreces IP identificades és una tasca trivial i no requereix explicació. Si ho penseu, podeu processar el fitxer ad_svc.trace AnyDesk en si, però no hi vaig pensar immediatament + potser hi ha una restricció.

2.4. L'estrany comportament desigual del programa és que quan el procés de servei és "taskkilled" a Windows 10, es reinicia automàticament, a Windows 8 s'acaba, deixant només el procés de la consola i sense tornar a connectar, en general, és il·lògic i inexacte.

L'eliminació d'un procés que s'ha connectat al servidor permet "forçar" una reconnexió a la següent adreça. S'implementa de manera similar a les ordres anteriors, de manera que només dono:

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

A més, inicieu el programa AnyDesk.

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

2.5. Comprovarem l'estat d'AnyDesk una vegada per minut (o més sovint?), i si està connectat, és a dir. connexió ESTABLECIDA: bloquegeu aquesta IP i, de nou, espereu fins que es connecti, bloquegeu i espereu.

3. Assalt

El codi es va "esborrar", es va decidir visualitzar el procés "+" especifiqueu la IP trobada i bloquejada, i "."- comprovació repetida sense connexió correcta des d'AnyDesk.

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk

Codi del projecte

Com a resultat…

Anàlisi de la possibilitat de bloquejar una aplicació de control remot d'un ordinador a través d'una xarxa, utilitzant l'exemple d'AnyDesk
El programa va funcionar en diversos ordinadors amb diferents SO Windows, amb les versions 5 i 6 d'AnyDesk. Es van recollir unes 500 adreces en 80 iteracions. Per a 2500 - 87 i així successivament...

Amb el temps, el nombre d'IP bloquejades va arribar a més de 100.

Enllaç a la final fitxer de text amb adreces: temps и два

Esta fet! S'afegeix un conjunt d'adreces IP a les regles de l'encaminador principal mitjançant un script i AnyDesk simplement no pot crear una connexió externa.

Hi ha un moment estrany, segons els registres inicials, és evident que l'adreça està implicada en la transferència d'informació boot-01.net.anydesk.com. Per descomptat, hem bloquejat tots els amfitrions *.net.anydesk.com com a regla general, però aquesta no és la curiositat. Cada vegada que un ping normal des d'ordinadors diferents, aquest nom de domini dóna una IP diferent. Comprovació a Linux:

host boot-01.net.anydesk.com

com DNSLookup, només donen una adreça IP, però aquesta adreça és variable. Quan analitzem una connexió TCPView, obtenim registres PTR d'adreces IP com relé-*.net.anydesk.com.

Teòricament: ja que el ping de vegades va a un host desbloquejat desconegut boot-01.net.anydesk.com podem trobar aquestes ip i bloquejar, fer que aquesta implementació sigui un script normal sota el sistema operatiu Linux, aquí no cal que instal·leu AnyDesk. L'anàlisi va mostrar que aquestes IP sovint són "creuar" amb els trobats de la nostra llista. Potser només es tracta d'aquest amfitrió, al qual es connecta el programa abans de començar a "ordenar" les IP conegudes. Probablement més endavant complementaré l'article amb la 2a part de les cerques d'amfitrió, encara que de moment el programa en si no instal·la la unió externa en general.

Espero que no hagis vist res il·legal a l'anterior, i els creadors d'AnyDesk tractaran les meves accions d'una manera esportiva.

Font: www.habr.com

Afegeix comentari