Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk

Kur një ditë të bukur shefi ngre pyetjen: "Pse disa kanë qasje të largët në kompjuterin e punës, pa marrë leje shtesë për përdorim?"
shfaqet detyra për të "mbuluar" shpëtimin.

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk
Ka shumĂ« aplikacione pĂ«r menaxhimin e largĂ«t tĂ« kompjuterĂ«ve: Chrome Remote Desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control etj. NĂ«se Chrome Remote Desktop ka njĂ« manual zyrtar pĂ«r tĂ« luftuar qasjen nĂ« shĂ«rbim, TeamViewer ka kufizime licencash pĂ«r kohĂ«n ose kĂ«rkesat nga rrjeti dhe pĂ«rdoruesit "me dhimbje" ashtu apo ndryshe "shfaqen" pĂ«r administratorĂ«t, atĂ«herĂ« mĂ« i preferuari i shumĂ« njerĂ«zve pĂ«r pĂ«rdorim personal — AnyDesk ende kĂ«rkon vĂ«mendje tĂ« veçantĂ«, sidomos nĂ«se shefi tha "Nuk lejohet!".

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk
Nëse e dini se çfarë është bllokimi i paketave rrjetës sipas përmbajtjes së tij dhe kjo ju përshtatet
materiali i mbetur nuk është për ju.

Duke provuar të shkojmë nga ana e kundërt, në të vërtetë të internetit flitet për atë që duhet të jetë e lejuar për funksionimin e programit, duke u bllokuar përkatësisht regjistrimi DNS *.net.anydesk.com. Porë AnyDesk nuk është i thjeshtë, bllokimi i emrit të domainit për të nuk ka rëndësi.

Njëherë më është zgjidhur një detyrë për bllokimin e «Anyplace Control», i cili na vinte me ndonjë softuer të dyshimtë, dhe ajo u zgjidh duke bllokuar vetëm disa IP (unë e mbulova me antivirus). Detyra me AnyDesk, pasi unë grumbullova manualisht më shumë se një duzinë adresash IP, më inkurajoi të largohem nga puna e zakonshme manuale.

Po ashtu u zbulua se në «C:ProgramDataAnyDesk» ka një sërë skedarësh me konfigurime etj., ndërsa në skedarin ad_svc.trace grumbullohen ngjarjet për lidhjet dhe dështimet.

1. Vëzhgimi

Siç u përmend, bllokimi i *.anydesk.com nuk dha asnjë rezultat në funksionimin e programit, u vendos të analizojmë sjelljen e programit në situata stresuese.. TCPView nga Sysinternals në duar dhe përpara!

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk

1.1. ËshtĂ« e qartĂ« se disa procese interesante ‘kanĂ« ngecur’, dhe vetĂ«m ai qĂ« lidhet me adresĂ«n nga jashtĂ« na intereson. Portet qĂ« lidhen testohen, nga ato qĂ« kam parĂ« kĂ«to janĂ«: 80, 443, 6568. 🙂 80 dhe 443 nuk mund t’i bllokojmĂ« aspak.

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

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk

1.3. Konsola është gjithçka për ne! Përcaktojmë PID dhe këtu më ndihmoi pak fati, pasi AnyDesk ishte instaluar nga shërbimi, kështu që PID i kërkuar është i vetmi.
1.4. Përcaktojmë IP adresën e serverit të shërbimeve nga PID i procesit.

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk

2. Përgatitja

Duke qenë se programi për identifikimin e IP adresave do të punojë vetëm në PC-në time, nuk kam asnjë kufizim nga këndvështrimi i komoditetit dhe lenies, prandaj përdor C#.

2.1. TĂ« gjitha metodat pĂ«r identifikimin e IP adresĂ«s sĂ« kĂ«rkuar tashmĂ« janĂ« tĂ« njohura, mbetet t’i realizojmĂ«.

string pid1_; //mësomë PID e shërbimit 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(','); //kthejmë përgjigjen në array
 pid1_ = pid1[1].Replace(""", ""); //merrni elementin e dytë pa thonjëza
}

Po ashtu, gjejmë shërbimin që ka vendosur lidhjen, do të shtoj vetëm rreshtin kryesor

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

Rezultati do të jetë:

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk
Nga rreshti, ashtu si në hapin e mëparshëm, nxjerrim kolumnin e tretë dhe heqim gjithçka pas ":". Si rezultat, kemi IP-në tonë të kërkuar.

2.2. Bllokimi i IP në Windows. Ndryshe nga Linux që ka Blackhole dhe iptables, metoda për të bllokuar një adresë IP në një shkronjë, pa përdorur ndërmjetës, në Windows doli të jetë të panjohur,"
por ishin të gjitha mjetet që kishim...

route add adresa_IP_e_gjetur mask 255.255.255.255 10.113.113.113 if 1 -p

Parametri kyç "if 1" dĂ«rgon itinerarin nĂ« Loopback (TĂ« drejtat e disponueshme tĂ« interface-it mund tĂ« shihen duke e ekzekutuar route print). Dhe E RËNDËSISHME! Tani programi duhet tĂ« jetĂ« nĂ« funksionim me tĂ« drejtat e administratorit, pasi ndryshimi i itinerarit kĂ«rkon ngritjen e tĂ« drejtave.

2.3. Shfaqja dhe ruajtja e adresave IP të identifikuara është një detyrë triviale dhe nuk kërkon shpjegime. Nëse mendojmë, mund të përpunojmë edhe skedarin ad_svc.trace të AnyDesk vetë, por për këtë nuk mendoja menjëherë + ndoshta ka ndonjë kufizim mbi të.

2.4. Sjellja e çuditshme e ndryshe e programit qĂ«ndron nĂ« faktin se kur procesi i shĂ«rbimit mbyllet me “taskkill” nĂ« Windows 10, ai rinis automatikisht, ndĂ«rsa nĂ« Windows 8 pĂ«rfundon, duke lĂ«nĂ« vetĂ«m procesin e konsolĂ«s dhe pa rinisje, çka Ă«shtĂ« jologjike dhe saktĂ«sisht.

Eliminimi i procesit të lidhur me serverin lejon "forcimin" e rikonnectimit në adresën tjetër. Realizohet në mënyrë të ngjashme me komandat e mëparshme, prandaj po e përmend vetëm:

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

Shtojmë për më tepër programin AnyDesk.

 //запусĐșĐ°Đ”ĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐŒŃƒ ĐșĐŸŃ‚ĐŸŃ€Đ°Ń Ń€Đ°ŃĐżĐŸĐ»ĐŸĐ¶Đ”ĐœĐ° ĐżĐŸ путо path_pro
if (File.Exists(path_pro)){ 
Process p1 = Process.Start(path_pro);}

2.5. Do tĂ« kontrollojmĂ« gjendjen e AnyDesk njĂ« herĂ« nĂ« minutĂ« (apo mĂ« shpesh?), dhe nĂ«se Ă«shtĂ« lidhur, dmth. lidhja ESTABLISHED — ky IP duhet bllokuar, dhe pĂ«rsĂ«ri gjithçka nga fillimi — tĂ« presim derisa tĂ« lidhet, bllokojmĂ« dhe presim.

3. Sulmi

Ishte "hedhur" kodi, pĂ«r tĂ« vizualizuar procesin u vendos "+" tĂ« tregojmĂ« IP-nĂ« e gjetur dhe tĂ« bllokuar, dhe "." — njĂ« herĂ« tjetĂ«r verifikimi pa lidhje tĂ« suksesshme nga AnyDesk.

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk

→ Kodi i projektit

Si rezultat...

Analiza e mundësisë për bllokimin e aplikacionit për menaxhimin e pajisjeve kompjuterike në mënyrë të lartë, duke marrë si shembull AnyDesk
Programi punoi nĂ« disa kompjuterĂ« me sisteme operativĂ« tĂ« ndryshme Windows, me versione AnyDesk 5 dhe 6. GjatĂ« 500 iteracioneve u mbledhĂ«n rreth 80 adresa. GjatĂ« 2500 — 87 dhe kĂ«shtu me radhĂ«...

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

Lidhja për finalen skedarin tekstual me adresat: një herë dhe dy herë

Çështja u bĂ«! Pool-i i adresave IP u shtua pĂ«rmes skriptit nĂ« rregullat e ruterit kryesor dhe AnyDesk thjesht nuk mund tĂ« krijojĂ« njĂ« lidhje tĂ« jashtme.

Ka njĂ« moment tĂ« çuditshĂ«m, sipas logeve fillestare shihet se adresa e informacionit Ă«shtĂ« pĂ«rfshirĂ« boot-01.net.anydesk.com. Natyrisht, kemi bllokuar tĂ« gjitha hostet *.net.anydesk.com me njĂ« rregull tĂ« pĂ«rbashkĂ«t, por çudia nuk Ă«shtĂ« kĂ«tu. Çdo herĂ« kur bĂ«het njĂ« ping normal nga komputera tĂ« ndryshĂ«m, ky emĂ«r domain-i jep njĂ« IP tĂ« ndryshme. Kontrolli nĂ« Linux:

host boot-01.net.anydesk.com

si dhe DNSLookup japin vetëm një adresë IP, por kjo adresë është variabile. Kur analizojmë lidhjet në TCPView, na kthehen regjistrime PTR të adresave IP të tipit relay-*.net.anydesk.com.

Teorikisht: pasi ping-u ndonjëherë kalon në një host të panjohur që nuk është bllokuar boot-01.net.anydesk.com mund të gjejmë këto IP dhe t'i bllokojmë, këtë implementim mund ta bëjmë me një skript të zakonshëm nën OS Linux, këtu as që nevojitet instalimi i AnyDesk. Analiza tregoi se këto IP shpesh "përsërisin" me ato të gjetura nga lista jonë. Mundet që ky host të jetë ai me të cilin programi lidhet para se të fillojë të "mbledhë" IP-të e njohura. Ka shumë të ngjarë që më vonë ta plotësoj artikullin me pjesën e dytë të kërkimeve për hoste, megjithëse aktualisht vetë programi brenda rrjetit nuk vendos lidhje të jashtme fare.

Shpresoj që nuk keni parë asgjë të paligjshme në atë që kam përshkruar më lart, dhe krijuesit e AnyDesk do ta pranojnë veprimin tim sportivisht.

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster