Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk

Wann enges Daags de Patron d'Fro stellt: "Firwat hunn e puer Leit Remote Zougang zum Aarbechtscomputer, ouni zousätzlech Permissiounen fir ze benotzen?"
D'Aufgab entsteet d'Schleifen "zouzemaachen".

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk
Et gi vill Uwendungen fir Fernsteierung iwwer dem Netz: Chrome Remote Desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, asw. aus dem Netz an d'Benotzer "zähnen" op déi eng oder aner Manéier "glänzen" mat den Administrateuren, dann ass de Favorit vu ville fir perséinlech Benotzung - AnyDesk erfuerdert nach ëmmer speziell Opmierksamkeet, besonnesch wann de Chef "Nee!"

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk
Wann Dir wësst wat d'Blockéierung vun engem Netzwierkpaket duerch säin Inhalt ass an Dir sidd zefridden mat deem, dann de Rescht vum Material
net virgesinn fir dech.

Probéieren aus dem Géigendeel ze goen, tatsächlech Site et seet wat erlaabt ass fir datt de Programm funktionnéiert; deementspriechend gouf den DNS-Rekord blockéiert *.net.anydesk.com. Awer AnyDesk ass net einfach; et ass egal fir en Domain Numm ze blockéieren.

Eemol hunn ech d'Problem geléist fir "Anyplace Control" ze blockéieren, dee mat e puer zweifelhafte Software bei eis komm ass, an et gouf geléist andeems Dir just e puer IPen blockéiert (ech hunn den Antivirus gebackupt). De Problem mat AnyDesk, nodeems ech manuell méi wéi eng Dosen IP Adressen gesammelt hunn, huet mech gefillt ewech vun der Routine manueller Aarbecht.

Et gouf och entdeckt datt am "C:ProgramDataAnyDesk" eng Rei Dateie mat Astellungen, etc., an an der Datei sinn ad_svc.trace Eventer iwwer Verbindungen a Feeler ginn gesammelt.

1. Observatioun

Wéi scho gesot, blockéieren *.anydesk.com huet keng Resultater am Operatioun vum Programm ginn, et gouf decidéiert analyséieren Programm Verhalen a stresseg Situatiounen. TCPView vu Sysinternals an Ären Hänn a gitt!

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk

1.1. Et kann gesi ginn datt verschidde Prozesser, déi fir eis interesséieren, "hänken", an nëmmen deen deen mat der Adress vu baussen kommunizéiert ass fir eis interessant. D'Häfen, op déi et verbënnt, ginn ausgewielt, vu wat ech gesinn hunn: 80, 443, 6568. 🙂 Mir kënnen definitiv net 80 an 443 blockéieren.

1.2. Nodeems Dir d'Adress duerch de Router blockéiert hutt, gëtt eng aner Adress roueg ausgewielt.

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk

1.3. D'Konsol ass eis ALLES! Mir bestëmmen de PID an dunn war ech e bësse Gléck datt AnyDesk vum Service installéiert gouf, sou datt de PID deen mir gesicht hunn deen eenzegen war.
1.4. Mir bestëmmen d'IP Adress vum Service Server aus dem Prozess PID.

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk

2. Virbereedung

Well de Programm fir d'Identifikatioun vun IP Adressen wäert wahrscheinlech nëmmen op mengem PC Aarbecht, Ech hu keng Restriktiounen op Kamoudheet an Laziness, also C #.

2.1. All Methode fir déi erfuerderlech IP Adress z'identifizéieren si scho bekannt, et bleift ze implementéieren.

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

Ähnlech fanne mir de Service deen d'Verbindung etabléiert huet, ech ginn nëmmen d'Haaptlinn

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

D'Resultat vun deem wäert sinn:

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk
Aus der Zeil, ähnlech wéi de virege Schrëtt, extrahéiert d'3. Kolonn a läscht alles no der ":". Als Resultat hu mir eis gewënschte IP.

2.2. IP Blockéierung op Windows. Wann Linux Blackhole an iptables huet, dann ass d'Methode fir eng IP Adress an enger Zeil ze blockéieren, ouni Firewall ze benotzen, a Windows war ongewéinlech,
mee wat fir eng Tools waren do...

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

Schlësselparameter "wann 1" schéckt de Wee op Loopback (Dir kënnt disponibel Interfaces weisen andeems Dir d'Route Print leeft). A WICHTEG! Elo muss de Programm lancéiert ginn mat Administrateur Rechter, zanter der Streck änneren erfuerdert Héicht.

2.3. Identifizéiert IP Adressen ze weisen an ze späicheren ass eng trivial Aufgab an erfuerdert keng Erklärung. Wann Dir driwwer denkt, kënnt Dir d'Datei veraarbecht ad_svc.trace AnyDesk selwer, awer ech hunn net direkt driwwer geduecht + vläicht ass et eng Begrenzung dran.

2.4. De komeschen ongläiche Verhalen vum Programm ass datt wann de Serviceprozess am Windows 10 "Taskkilling" automatesch nei start, am Windows 8 endet et, nëmmen de Konsolprozess hannerloosst an ouni nei ze konnektéieren, am Allgemengen ass et onlogesch an dëst ass ongenau.

E Prozess ze läschen, deen mam Server verbonnen ass, erlaabt Iech d'Verbindung op déi nächst Adress ze "zwéngen". Et gëtt op déiselwecht Manéier ëmgesat wéi déi virdrun Kommandoen, also ginn ech et just:

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

Zousätzlech lancéiert den AnyDesk Programm.

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

2.5. Mir kontrolléieren de Status vun AnyDesk eemol pro Minutt (oder méi oft?), A wann et ugeschloss ass, d.h. Verbindung ESTABLISHED - blockéiert dës IP, an erëm erëm - waart bis et verbënnt, blockéiert a waart.

3. Ugrëff

De Code gouf "skizzéiert" an et gouf decidéiert de Prozess ze visualiséieren "+" uginn déi fonnt a blockéiert IP, an "."- widderhuelen de Scheck ouni erfollegräich Noperverbindung vun AnyDesk.

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk

Projet Code

Als Resultat vun…

Analyse vun der Méiglechkeet eng Applikatioun fir Ferncomputer Kontroll iwwer e Netzwierk ze blockéieren, mam Beispill vun AnyDesk
De Programm huet op verschiddene Computere mat verschiddene Windows OS geschafft, mat Versioune vun AnyDesk 5 a 6. Iwwer 500 Iteratiounen goufen ongeféier 80 Adressen gesammelt. Fir 2500 - 87 an sou weider ...

Mat der Zäit huet d'Zuel vun de blockéierte IPs 100+ erreecht.

Link zu Finale Textdatei mat Adressen: Zäiten и два

Et ass gemaach! De Pool vun IP Adressen gouf op d'Regele vum Haaptrouter duerch de Skript bäigefüügt an AnyDesk kann einfach keng extern Verbindung erstellen.

Et gëtt e komeschen Punkt, aus den initialen Logbicher ass et kloer datt d'Adress am Informatiounstransfer involvéiert ass boot-01.net.anydesk.com. Natierlech hu mir all *.net.anydesk.com Hosten als allgemeng Regel blockéiert, awer dat ass net déi komesch Saach. All Kéier mat engem normale Ping vu verschiddene Computeren gëtt dësen Domain Numm eng aner IP. Iwwerpréift op Linux:

host boot-01.net.anydesk.com

wéi DNSLookup gi se nëmmen eng IP Adress, awer dës Adress ass variabel. Wann Dir eng TCPView Verbindung analyséiert, gi mir PTR-Records vun IP Adressen vum Typ zréck relais-*.net.anydesk.com.

Theoretesch: well de Ping heiansdo un en onbekannte net blockéierten Host geet boot-01.net.anydesk.com mir kënnen dës Ips fannen a blockéieren, maacht dës Implementatioun zu engem reguläre Skript ënner Linux OS, hei ass et net néideg AnyDesk z'installéieren. D'Analyse huet gewisen datt dës IPen dacks "kräizen"mat deenen, déi aus eiser Lëscht fonnt goufen. Vläicht ass et just dëse Host, mat deem de Programm sech verbënnt, ier e ufänkt, bekannte IPen ze "aussortéieren". Ech wäert den Artikel wuel spéider mam 2. Deel vun Host-Sich ergänzen, obwuel am Moment de Programm selwer installéiert net am Netz baussenzege Bäitrëtt am Allgemengen.

Ech hoffen Dir hutt näischt illegal an der uewen gesinn, an d'Creatoren vun AnyDesk wäerten meng Handlungen op eng sportlech Manéier behandelen.

Source: will.com

Setzt e Commentaire