Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk

Kur një ditë shefi ngre pyetjen: "Pse disa njerëz kanë qasje në distancë në kompjuterin e punës, pa marrë leje shtesë për përdorim?"
Detyra lind për të "mbyllur" boshllëkun.

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk
Ka shumë aplikacione për kontrollin në distancë të rrjetit: desktopi në distancë i Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, etj. Nëse desktopi në distancë i Chrome ka një manual zyrtar për të luftuar aksesin në shërbim, TeamViewer ka kufizime licencimi në kohë ose kërkesa nga rrjeti dhe përdoruesit "i bluajnë dhëmbët" në një mënyrë ose në një tjetër "shkëlqejnë" me administratorët, pastaj i preferuari i shumë njerëzve për përdorim personal - AnyDesk ende kërkon vëmendje të veçantë, veçanërisht nëse shefi tha "Jo!"

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk
Nëse e dini se çfarë është bllokimi i një pakete rrjeti nga përmbajtja e saj dhe jeni të kënaqur me të, atëherë pjesa tjetër e materialit
nuk synohet për ty.

Përpjekja për të shkuar nga e kundërta, në fakt Online thotë se çfarë duhet të lejohet që programi të funksionojë; në përputhje me rrethanat, regjistrimi DNS u bllokua *.net.anydesk.com. Por AnyDesk nuk është e thjeshtë; nuk i intereson të bllokojë një emër domaini.

Njëherë e një kohë, zgjidha problemin e bllokimit të "Anyplace Control", i cili na erdhi me disa softuer të dyshimtë dhe u zgjidh duke bllokuar vetëm disa IP (kam bërë kopje rezervë të antivirusit). Problemi me AnyDesk, pasi mblodha manualisht më shumë se një duzinë adresa IP, më nxiti largohuni nga puna rutinë manuale.

Gjithashtu u zbulua se në "C:ProgramDataAnyDesk" ka një numër skedarësh me cilësime, etj., dhe në skedar ad_svc.trace Mblidhen ngjarje rreth lidhjeve dhe dështimeve.

1. Vëzhgimi

Siç u përmend tashmë, bllokimi *.anydesk.com nuk dha ndonjë rezultat në funksionimin e programit, u vendos që të analizohej programoni sjelljen në situata stresuese. TCPView nga Sysinternals në duart tuaja dhe shkoni!

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk

1.1. Mund të shihet se disa procese me interes për ne janë "varur", dhe vetëm ai që komunikon me adresën nga jashtë është me interes për ne. Portat me të cilat lidhet janë zgjedhur, nga sa pashë: 80, 443, 6568. 🙂 Nuk mund të bllokojmë patjetër 80 dhe 443.

1.2. Pas bllokimit të adresës përmes ruterit, një adresë tjetër zgjidhet në heshtje.

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk

1.3. Konsola është GJITHÇKA jonë! Ne përcaktojmë PID-in dhe më pas isha pak me fat që AnyDesk u instalua nga shërbimi, kështu që PID që kërkonim ishte i vetmi.
1.4. Ne përcaktojmë adresën IP të serverit të shërbimit nga procesi PID.

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk

2. Përgatitja

Meqenëse programi për identifikimin e adresave IP ndoshta do të funksionojë vetëm në kompjuterin tim, nuk kam kufizime për komoditetin dhe dembelizmin, kështu që C#.

2.1. Të gjitha metodat për identifikimin e adresës së kërkuar IP janë tashmë të njohura, mbetet për t'u zbatuar.

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

Në mënyrë të ngjashme, ne gjejmë shërbimin që ka krijuar lidhjen, unë do të jap vetëm linjën kryesore

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

Rezultati i të cilit do të jetë:

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk
Nga rreshti, në mënyrë të ngjashme me hapin e mëparshëm, nxirrni kolonën e 3-të dhe hiqni gjithçka pas ":". Si rezultat, ne kemi IP-në tonë të dëshiruar.

2.2. Bllokimi i IP në Windows. Nëse Linux ka Blackhole dhe iptables, atëherë metoda e bllokimit të një adrese IP në një rresht, pa përdorur një mur zjarri, në Windows doli të ishte e pazakontë,
por çfarë lloj mjetesh kishte ...

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

Parametri kryesor "nëse 1" dërgo itinerarin te Loopback (Mund të shfaqësh ndërfaqet e disponueshme duke ekzekutuar printimin e rrugës). DHE E RËNDËSISHME! Tani programi duhet të hapet me të drejta administratori, pasi ndryshimi i itinerarit kërkon lartësi.

2.3. Shfaqja dhe ruajtja e adresave IP të identifikuara është një detyrë e parëndësishme dhe nuk kërkon shpjegim. Nëse mendoni për këtë, mund ta përpunoni skedarin ad_svc.trace Vetë AnyDesk, por nuk e mendova menjëherë + mbase ka një kufizim në të.

2.4. Sjellja e çuditshme e pabarabartë e programit është se kur "taskkilling" procesi i shërbimit në Windows 10, ai rifillon automatikisht, në Windows 8 përfundon, duke lënë vetëm procesin e konsolës dhe pa u rilidhur, në përgjithësi është i palogjikshëm dhe kjo është e pasaktë.

Heqja e një procesi që është lidhur me serverin ju lejon të "detyroni" rilidhjen në adresën tjetër. Zbatohet në të njëjtën mënyrë si komandat e mëparshme, kështu që unë thjesht do ta jap:

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

Për më tepër, nisni programin AnyDesk.

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

2.5. Ne do të kontrollojmë statusin e AnyDesk një herë në minutë (apo më shpesh?), dhe nëse është i lidhur, d.m.th. Lidhja E KRYESUAR - bllokoni këtë IP dhe përsëri përsëri - prisni derisa të lidhet, bllokoni dhe prisni.

3. Sulmi

Kodi ishte "skicuar" dhe u vendos që të vizualizohej procesi "+" tregoni IP-në e gjetur dhe të bllokuar dhe "."—përsëriteni kontrollin pa lidhje të suksesshme fqinje nga AnyDesk.

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk

Kodi i projektit

Si rezultat…

Analiza e mundësisë së bllokimit të një aplikacioni për kontrollin e kompjuterit në distancë mbi një rrjet, duke përdorur shembullin e AnyDesk
Programi funksiononte në disa kompjuterë me sisteme të ndryshme operative Windows, me versione të AnyDesk 5 dhe 6. U mblodhën mbi 500 përsëritje, rreth 80 adresa. Për 2500 - 87 e kështu me radhë ...

Me kalimin e kohës, numri i IP-ve të bllokuara arriti në 100+.

Lidhja me finalen skedar teksti me adresat: kohë и два

Ajo është bërë! Grupi i adresave IP iu shtua rregullave të ruterit kryesor përmes skriptit dhe AnyDesk thjesht nuk mund të krijojë një lidhje të jashtme.

Ekziston një pikë e çuditshme, nga regjistrat fillestarë është e qartë se adresa është e përfshirë në transferimin e informacionit boot-01.net.anydesk.com. Sigurisht, ne bllokuam të gjithë hostet *.net.anydesk.com si rregull i përgjithshëm, por kjo nuk është gjëja e çuditshme. Çdo herë me një ping normal nga kompjuterë të ndryshëm, ky emër domeni jep një IP të ndryshme. Kontrollimi në Linux:

host boot-01.net.anydesk.com

si DNSLookup ata japin vetëm një adresë IP, por kjo adresë është e ndryshueshme. Kur analizojmë një lidhje TCPView, na kthehen të dhënat PTR të adresave IP të llojit rele-*.net.anydesk.com.

Teorikisht: meqenëse ping ndonjëherë shkon te një host i panjohur i zhbllokuar boot-01.net.anydesk.com ne mund t'i gjejmë këto IP dhe t'i bllokojmë, ta bëjmë këtë zbatim një skript të rregullt nën Linux OS, këtu nuk ka nevojë të instaloni AnyDesk. Analiza tregoi se këto IP shpesh "kryqëzohen"Me ato të gjetura nga lista jonë. Ndoshta është vetëm ky host me të cilin lidhet programi përpara se të fillojë të "zgjidhë" IP-të e njohura. Ndoshta më vonë do ta plotësoj artikullin me pjesën e dytë të kërkimeve të hostit, megjithëse për momentin Vetë programi nuk instalohet brenda bashkimit të jashtëm të rrjetit në përgjithësi.

Shpresoj se nuk keni parë ndonjë gjë të paligjshme në sa më sipër, dhe krijuesit e AnyDesk do t'i trajtojnë veprimet e mia në një mënyrë sportive.

Burimi: www.habr.com

Shto një koment