Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk

Când într-o zi șeful ridică întrebarea: „De ce unii oameni au acces de la distanță la computerul de lucru, fără a obține permisiuni suplimentare de utilizare?”
Sarcina apare de a „închide” lacuna.

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk
Există o mulțime de aplicații pentru controlul de la distanță prin rețea: desktop la distanță Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control etc. Dacă desktopul la distanță Chrome are un manual oficial pentru combaterea accesului la serviciu, TeamViewer are restricții de licențiere la timp sau solicitări din rețea și utilizatorii „scrâșnesc din dinți” într-un fel sau altul „strălucesc” cu administratorii, apoi preferatul multora pentru uz personal - AnyDesk încă necesită o atenție specială, mai ales dacă șeful a spus „Nu!”

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk
Dacă știi ce înseamnă blocarea unui pachet de rețea prin conținutul său și ești mulțumit de el, atunci restul materialului
neintenționat Pentru dumneavoastră.

Încerc să treci de la opus, de fapt On-line spune ce trebuie permis pentru ca programul să funcționeze; în consecință, înregistrarea DNS a fost blocată *.net.anydesk.com. Dar AnyDesk nu este simplu; nu-i pasă de blocarea unui nume de domeniu.

Cândva, am rezolvat problema blocării „Anyplace Control”, care ne-a venit cu niște software dubios și s-a rezolvat prin blocarea doar a câtorva IP-uri (am făcut backup pentru antivirus). Problema cu AnyDesk, după ce am colectat manual mai mult de o duzină de adrese IP, m-a îndemnat scăpați de munca manuală de rutină.

De asemenea, s-a descoperit că în „C:ProgramDataAnyDesk” există o serie de fișiere cu setări etc., iar în fișier ad_svc.trace Sunt colectate evenimente despre conexiuni și defecțiuni.

1. Observare

După cum sa menționat deja, blocarea *.anydesk.com nu a dat niciun rezultat în funcționarea programului, s-a decis să se analizeze comportamentul programului în situații stresante. TCPView de la Sysinternals în mâinile tale și du-te!

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk

1.1. Se poate observa că mai multe procese care ne interesează sunt „atârnate”, și ne interesează doar cel care comunică cu adresa din exterior. Sunt selectate porturile la care se conectează, din câte am văzut: 80, 443, 6568. 🙂 Cu siguranță nu putem bloca 80 și 443.

1.2. După blocarea adresei prin router, o altă adresă este selectată în liniște.

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk

1.3. Consola este TOTUL nostru! Determinăm PID-ul și apoi am fost puțin norocos că AnyDesk a fost instalat de serviciu, așa că PID-ul pe care îl căutam a fost singurul.
1.4. Determinăm adresa IP a serverului de servicii din PID-ul procesului.

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk

2. Pregătire

Deoarece programul de identificare a adreselor IP va funcționa probabil doar pe computerul meu, nu am restricții cu privire la comoditate și lene, deci C#.

2.1. Toate metodele de identificare a adresei IP necesare sunt deja cunoscute, rămâne de implementat.

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

La fel, găsim serviciul care a stabilit legătura, voi da doar linia principală

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

Rezultatul căruia va fi:

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk
Din rând, în mod similar cu pasul anterior, extrageți a 3-a coloană și eliminați totul după „:”. Drept urmare, avem IP-ul dorit.

2.2. Blocarea IP în Windows. Dacă Linux are Blackhole și iptables, atunci metoda de blocare a unei adrese IP într-o singură linie, fără a utiliza un firewall, în Windows s-a dovedit a fi neobișnuită,
dar ce fel de instrumente erau acolo...

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

Parametru cheie "dacă 1" trimite ruta la Loopback (Puteți afișa interfețele disponibile rulând ruta print). ȘI IMPORTANT! Acum programul trebuie lansat cu drepturi de administrator, deoarece schimbarea traseului necesită cotă.

2.3. Afișarea și salvarea adreselor IP identificate este o sarcină banală și nu necesită explicații. Dacă vă gândiți bine, puteți procesa fișierul ad_svc.trace AnyDesk în sine, dar nu m-am gândit imediat la asta + poate că există o limitare.

2.4. Comportamentul ciudat neuniform al programului este că la „taskkilling” procesul de service în Windows 10, acesta repornește automat, în Windows 8 se termină, lăsând doar procesul de consolă și fără reconectare, în general este ilogic și acest lucru este inexact.

Eliminarea unui proces care s-a conectat la server vă permite să „forțați” reconectarea la următoarea adresă. Este implementat în același mod ca și comenzile anterioare, așa că îi voi da doar:

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

În plus, lansați programul AnyDesk.

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

2.5. Vom verifica starea AnyDesk o dată pe minut (sau mai des?), iar dacă este conectat, de ex. conexiune STABILITĂ - blocați acest IP și din nou din nou - așteptați până se conectează, blocați și așteptați.

3. Atacul

Codul a fost „schițat” și s-a decis să se vizualizeze procesul „+" indica IP-ul găsit și blocat și ".„—repetați verificarea fără o conexiune reușită a vecinului de la AnyDesk.

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk

Cod proiect

Ca urmare…

Analiza posibilității de blocare a unei aplicații pentru controlul computerului de la distanță printr-o rețea, folosind exemplul AnyDesk
Programul a funcționat pe mai multe computere cu sistem de operare Windows diferit, cu versiuni de AnyDesk 5 și 6. Peste 500 de iterații, au fost colectate aproximativ 80 de adrese. Pentru 2500 - 87 și așa mai departe...

De-a lungul timpului, numărul de IP-uri blocate a ajuns la peste 100.

Link către finală fisier text cu adrese: timp и два

E gata! Grupul de adrese IP a fost adăugat la regulile routerului principal prin script și AnyDesk pur și simplu nu poate crea o conexiune externă.

Există un punct ciudat, din jurnalele inițiale reiese clar că adresa este implicată în transferul de informații boot-01.net.anydesk.com. Desigur, am blocat toate gazdele *.net.anydesk.com ca regulă generală, dar nu acesta este lucrul ciudat. De fiecare dată cu un ping normal de la diferite computere, acest nume de domeniu oferă un IP diferit. Verificare pe Linux:

host boot-01.net.anydesk.com

ca DNSLookup, ei dau o singură adresă IP, dar această adresă este variabilă. Când analizăm o conexiune TCPView, ni se returnează înregistrări PTR ale adreselor IP de acest tip releu-*.net.anydesk.com.

Teoretic: deoarece ping-ul ajunge uneori la o gazdă necunoscută neblocata boot-01.net.anydesk.com putem găsi aceste ip-uri și le blocăm, facem din această implementare un script obișnuit sub Linux OS, aici nu este nevoie să instalați AnyDesk. Analiza a arătat că aceste IP-uri adesea "se intersectează„cu cele găsite din lista noastră. Poate că tocmai această gazdă la care se conectează programul înainte de a începe să „sorteze” IP-urile cunoscute. Probabil că mai târziu voi completa articolul cu a doua parte a căutărilor de gazdă, deși în momentul de față programul în sine nu se instalează în rețeaua exterioară unire în general.

Sper că nu ați văzut nimic ilegal în cele de mai sus, iar creatorii AnyDesk vor trata acțiunile mele într-un mod sportiv.

Sursa: www.habr.com

Adauga un comentariu