Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk

Ko nekega dne šef postavi vprašanje: "Zakaj imajo nekateri oddaljeni dostop do službenega računalnika, ne da bi pridobili dodatna dovoljenja za uporabo?"
Naloga se pojavi, da "zapremo" vrzel.

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk
Obstaja veliko aplikacij za oddaljeni nadzor nad omrežjem: oddaljeno namizje Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control itd. Če ima oddaljeno namizje Chrome uradni priročnik za boj proti dostopu do storitve, ima TeamViewer licenčne omejitve glede časa ali zahtev iz omrežja in uporabniki tako ali drugače "škripajo z zobmi" pri skrbnikih, nato pa najljubši mnogim za osebno uporabo - AnyDesk še vedno zahteva posebno pozornost, še posebej, če je šef rekel "Ne!"

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk
Če veste, kaj je blokiranje omrežnega paketa po vsebini in ste z njim zadovoljni, potem ostalo gradivo
ni namenjeno zate.

Pravzaprav poskušam iti iz nasprotnega Online piše, kaj mora biti dovoljeno, da program deluje, zato je bil DNS zapis blokiran *.net.anydesk.com. Vendar AnyDesk ni preprost; ni mu mar za blokiranje imena domene.

Nekoč sem rešil problem blokade “Anyplace Control”, ki je prišel do nas z neko sumljivo programsko opremo, in to tako, da sem blokiral samo nekaj IP-jev (varnostno sem naredil antivirus). Težava z AnyDesk, potem ko sem ročno zbral več kot ducat naslovov IP, navdušil me je pobegniti od rutinskega ročnega dela.

Ugotovljeno je bilo tudi, da so v »C:ProgramDataAnyDesk« številne datoteke z nastavitvami itd., in v datoteki ad_svc.trace Zbrani so dogodki o povezavah in okvarah.

1. Opazovanje

Kot že omenjeno, blokiranje *.anydesk.com ni dalo nobenih rezultatov pri delovanju programa, zato je bilo odločeno analizirati program vedenja v stresnih situacijah. TCPView iz Sysinternals v vaše roke in na pot!

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk

1.1. Vidi se, da »visi« več procesov, ki nas zanimajo, zanimiv pa je le tisti, ki komunicira z naslovom od zunaj. Vrata, na katera se povezuje, so izbrana glede na to, kar sem videl: 80, 443, 6568. 🙂 Vsekakor ne moremo blokirati 80 in 443.

1.2. Po blokiranju naslova prek usmerjevalnika se tiho izbere drug naslov.

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk

1.3. Konzola je naše VSE! Določimo PID in potem sem imel malo sreče, da je AnyDesk namestil servis, tako da je bil PID, ki smo ga iskali, edini.
1.4. Iz PID procesa določimo naslov IP storitvenega strežnika.

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk

2. Priprava

Ker bo program za identifikacijo IP naslovov verjetno deloval samo na mojem računalniku, nimam nobenih omejitev glede priročnosti in lenobe, zato C#.

2.1. Vse metode za identifikacijo zahtevanega naslova IP so že znane, treba jih je še implementirati.

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

Podobno najdemo storitev, ki je vzpostavila povezavo, dal bom samo glavno linijo

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

Rezultat tega bo:

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk
Iz vrstice, podobno kot v prejšnjem koraku, izluščite 3. stolpec in odstranite vse za “:”. Kot rezultat, imamo želeni IP.

2.2. Blokiranje IP v sistemu Windows. Če ima Linux Blackhole in iptables, se je metoda blokiranja naslova IP v eni vrstici, brez uporabe požarnega zidu, v sistemu Windows izkazala za nenavadno,
pa kakšna orodja so bila tam...

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

Ključni parameter "če 1" pošljite pot v Loopback (Razpoložljive vmesnike lahko prikažete tako, da zaženete tiskanje poti). IN POMEMBNO! Zdaj je treba zagnati program z administratorskimi pravicami, saj sprememba poti zahteva višino.

2.3. Prikaz in shranjevanje identificiranih naslovov IP je nepomembna naloga in ne zahteva razlage. Če dobro premislite, lahko datoteko obdelate ad_svc.trace AnyDesk sam, vendar nanj nisem pomislil takoj + morda obstaja kakšna omejitev.

2.4. Nenavadno neenakomerno vedenje programa je, da se pri »ubijanju opravil« storitveni proces v sistemu Windows 10 samodejno znova zažene, v sistemu Windows 8 pa se konča, pri čemer ostane samo postopek konzole in brez ponovne povezave, na splošno je nelogično in netočno.

Odstranitev procesa, ki se je povezal s strežnikom, vam omogoča, da »prisilite« ponovno povezavo na naslednji naslov. Izveden je na enak način kot prejšnji ukazi, zato ga bom samo dal:

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

Poleg tega zaženite program AnyDesk.

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

2.5. Enkrat na minuto (ali pogosteje?) bomo preverjali stanje AnyDeska in če je povezan, tj. povezava VZPOSTAVLJENA - blokiraj ta IP in spet vse znova - počakaj, da se poveže, blokiraj in počakaj.

3. Napad

Koda je bila "skicirana" in odločeno je bilo vizualizirati proces "+" označi najdeni in blokirani IP in "."— ponovite preverjanje brez uspešne sosednje povezave iz AnyDesk.

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk

Koda projekta

Kot rezultat…

Analiza možnosti blokiranja aplikacije za oddaljeni nadzor računalnika preko omrežja na primeru AnyDesk
Program je deloval na več računalnikih z različnimi operacijskimi sistemi Windows, z različicama AnyDesk 5 in 6. V več kot 500 iteracijah je bilo zbranih približno 80 naslovov. Za 2500 - 87 in tako naprej...

Sčasoma je število blokiranih IP-jev doseglo 100+.

Povezava do finala besedilna datoteka z naslovi: čas и два

Je narejeno! Nabor naslovov IP je bil dodan pravilom glavnega usmerjevalnika prek skripta in AnyDesk preprosto ne more ustvariti zunanje povezave.

Obstaja nenavadna točka, iz začetnih dnevnikov je jasno, da je naslov vpleten v prenos informacij boot-01.net.anydesk.com. Seveda smo kot splošno pravilo blokirali vse gostitelje *.net.anydesk.com, vendar to ni čudno. Vsakič z običajnim pingom iz različnih računalnikov to ime domene da drugačen IP. Preverjanje v Linuxu:

host boot-01.net.anydesk.com

tako kot DNSLookup dajejo samo en naslov IP, vendar je ta naslov spremenljiv. Pri analizi povezave TCPView nam vrnejo zapise PTR naslovov IP vrste relay-*.net.anydesk.com.

Teoretično: ker gre ping včasih na neznanega neblokiranega gostitelja boot-01.net.anydesk.com lahko najdemo te ip-je in jih blokiramo, naredimo to izvedbo kot običajni skript pod OS Linux, tukaj ni potrebe po namestitvi AnyDeska. Analiza je pokazala, da ti naslovi IP pogosto "sekajo"s tistimi, ki jih najdemo iz našega seznama. Morda se program poveže ravno s tem gostiteljem, preden začne "izbirati" znane IP-je. Verjetno bom kasneje članek dopolnil z 2. delom iskanja gostiteljev, čeprav trenutno sam program se na splošno ne namesti znotraj zunanjega združevanja omrežja.

Upam, da v zgoraj navedenem niste videli nič nezakonitega in da bodo ustvarjalci AnyDesk moja dejanja obravnavali športno.

Vir: www.habr.com

Dodaj komentar