AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish

Bir kuni xo'jayin savol tug'dirganda: "Nega ba'zi odamlar foydalanish uchun qo'shimcha ruxsatnomalarsiz ish kompyuteriga masofadan kirishadi?"
Vazifa bo'shliqni "yopish" uchun paydo bo'ladi.

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish
Tarmoqni masofadan boshqarish uchun ko'plab ilovalar mavjud: Chrome masofaviy ish stoli, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control va boshqalar. Agar Chrome masofaviy ish stolida xizmatga kirishga qarshi kurashish bo'yicha rasmiy qo'llanma bo'lsa, TeamViewerda vaqt yoki so'rovlar bo'yicha litsenziyalash cheklovlari mavjud. tarmoq va foydalanuvchilar ma'murlar bilan u yoki bu tarzda "tishlarini g'ijirlatadilar", keyin ko'pchilik shaxsiy foydalanish uchun sevimli - AnyDesk hali ham alohida e'tibor talab qiladi, ayniqsa xo'jayin "Yo'q!"

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish
Tarmoq paketini mazmuniga ko'ra blokirovka qilish nima ekanligini bilsangiz va undan qoniqsangiz, qolgan material
mo'ljallanmagan Siz uchun.

Qarama-qarshi tomondan borishga harakat qilish, aslida сайт unda dastur ishlashi uchun nima ruxsat berilishi kerakligi aytiladi; shunga ko'ra, DNS yozuvi bloklangan *.net.anydesk.com. Ammo AnyDesk oddiy emas; u domen nomini blokirovka qilish haqida qayg'urmaydi.

Bir vaqtlar men bizga qandaydir shubhali dasturiy ta'minot bilan kelgan "Anyplace Control" ni blokirovka qilish muammosini hal qildim va u faqat bir nechta IP-larni blokirovka qilish orqali hal qilindi (men antivirusni zaxira qildim). AnyDesk bilan bog'liq muammo, men o'ndan ortiq IP manzillarni qo'lda to'plaganimdan so'ng, meni qo'zg'atdi muntazam qo'l mehnatidan voz keching.

Bundan tashqari, "C: ProgramDataAnyDesk" da sozlamalari va boshqalar bilan bir qator fayllar va faylda mavjudligi aniqlandi. ad_svc.trace Ulanishlar va nosozliklar haqidagi voqealar to'planadi.

1. Kuzatish

Yuqorida aytib o'tilganidek, *.anydesk.com saytini bloklash dasturning ishlashida hech qanday natija bermadi, tahlil qilishga qaror qilindi. stressli vaziyatlarda dastur xatti-harakati. Sysinternals-dan TCPView sizning qo'lingizda va boring!

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish

1.1. Ko'rinib turibdiki, bizni qiziqtirgan bir nechta jarayonlar "osilgan" va faqat tashqi tomondan manzil bilan aloqa qiladigan narsa bizni qiziqtiradi. U ulanadigan portlar men ko'rganlarimdan tanlangan: 80, 443, 6568. πŸ™‚ Biz, albatta, 80 va 443 ni bloklay olmaymiz.

1.2. Router orqali manzilni bloklagandan so'ng, boshqa manzil jimgina tanlanadi.

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish

1.3. Konsol bizning HAMMA narsamizdir! Biz PID-ni aniqlaymiz va keyin men AnyDesk-ni xizmat tomonidan o'rnatilgani uchun biroz omadim keldi, shuning uchun biz izlayotgan PID yagona edi.
1.4. Biz xizmat serverining IP manzilini PID jarayonidan aniqlaymiz.

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish

2. Tayyorgarlik

IP-manzillarni aniqlash dasturi, ehtimol, faqat mening shaxsiy kompyuterimda ishlaydi, shuning uchun menda qulaylik va dangasalik bo'yicha hech qanday cheklovlar yo'q, shuning uchun C#.

2.1. Kerakli IP-manzilni aniqlashning barcha usullari allaqachon ma'lum, uni amalga oshirish kerak.

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ΠΉ элСмСнт Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ
}

Xuddi shunday, biz ulanishni o'rnatgan xizmatni topamiz, men faqat asosiy yo'nalishni beraman

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

Buning natijasi quyidagicha bo'ladi:

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish
Oldingi bosqichga o'xshash qatordan 3-ustunni chiqarib oling va ":" dan keyin hamma narsani olib tashlang. Natijada, biz xohlagan IP-ga ega bo'lamiz.

2.2. Windows-da IP blokirovkasi. Agar Linuxda Blackhole va iptables bo'lsa, Windows-da xavfsizlik devoridan foydalanmasdan IP-manzilni bitta satrda bloklash usuli g'ayrioddiy bo'lib chiqdi,
lekin qanday asboblar bor edi ...

route add наш_Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ_IP_адрСс mask 255.255.255.255 10.113.113.113 if 1 -p

Asosiy parametr "agar 1" Loopback ga marshrutni yuboring (Marshrutni chop etish orqali mavjud interfeyslarni ko'rsatishingiz mumkin). VA MUHIM! Endi dasturni ishga tushirish kerak. administrator huquqlari bilan, chunki marshrutni o'zgartirish balandlikni talab qiladi.

2.3. Aniqlangan IP manzillarni ko'rsatish va saqlash arzimas ish bo'lib, tushuntirishni talab qilmaydi. Agar siz bu haqda o'ylab ko'rsangiz, faylni qayta ishlashingiz mumkin ad_svc.trace AnyDesk-ning o'zi, lekin men bu haqda darhol o'ylamagan edim + ehtimol bu borada cheklov bor.

2.4. Dasturning g'alati notekis xatti-harakati shundaki, Windows 10-da xizmat ko'rsatish jarayoni "taskkilling" paytida u avtomatik ravishda qayta boshlanadi, Windows 8-da u tugaydi, faqat konsol jarayonini qoldirib, qayta ulanmasdan, umuman olganda bu mantiqqa to'g'ri kelmaydi va bu noto'g'ri.

Serverga ulangan jarayonni olib tashlash keyingi manzilga qayta ulanishni β€œmajburlash” imkonini beradi. U avvalgi buyruqlar bilan bir xil tarzda amalga oshiriladi, shuning uchun men uni shunchaki beraman:

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

Bundan tashqari, AnyDesk dasturini ishga tushiring.

 //запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ которая располоТСна ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ path_pro
if (File.Exists(path_pro)){ 
Process p1 = Process.Start(path_pro);}

2.5. Biz AnyDesk-ning holatini daqiqada bir marta tekshiramiz (yoki tez-tez?), va agar u ulangan bo'lsa, ya'ni. ulanish o'rnatildi - bu IP-ni bloklang va yana qaytadan - u ulanishini kuting, bloklang va kuting.

3. Hujum

Kod "chizildi" va jarayonni vizualizatsiya qilishga qaror qilindi "+"topilgan va bloklangan IPni ko'rsating va"."β€” AnyDesk-dan qo'shni muvaffaqiyatli ulanishisiz tekshirishni takrorlang.

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish

β†’ Loyiha kodi

Natijada…

AnyDesk misolidan foydalanib, tarmoq orqali kompyuterni masofadan boshqarish uchun dasturni blokirovka qilish imkoniyatini tahlil qilish
Dastur har xil Windows operatsion tizimiga ega, AnyDesk 5 va 6 versiyalari bilan bir nechta kompyuterlarda ishlagan. 500 dan ortiq iteratsiyalar, 80 ga yaqin manzillar to'plangan. 2500 - 87 va boshqalar uchun ...

Vaqt o'tishi bilan bloklangan IP-lar soni 100+ ga yetdi.

Finalga havola matn fayli manzillar bilan: vaqt ΠΈ Π΄Π²Π°

Bajarildi! IP-manzillar hovuzi asosiy router qoidalariga skript orqali qo'shilgan va AnyDesk shunchaki tashqi ulanishni yarata olmaydi.

G'alati bir nuqta bor, dastlabki jurnallardan ma'lum bo'lishicha, manzil ma'lumot uzatishda ishtirok etadi boot-01.net.anydesk.com. Albatta, biz umumiy qoida sifatida barcha *.net.anydesk.com xostlarini blokladik, ammo bu g'alati narsa emas. Har safar turli kompyuterlardan oddiy ping bilan bu domen nomi boshqa IP beradi. Linuxda tekshirish:

host boot-01.net.anydesk.com

DNSLookup kabi ular faqat bitta IP manzilini beradi, lekin bu manzil o'zgaruvchan. TCPView ulanishini tahlil qilishda bizga IP manzillarining PTR yozuvlari qaytariladi relay-*.net.anydesk.com.

Nazariy jihatdan: ping ba'zan bloklanmagan noma'lum xostga o'tadi boot-01.net.anydesk.com biz ushbu IP-larni topib, ularni bloklashimiz mumkin, ushbu dasturni Linux OS ostida oddiy skriptga aylantiramiz, bu erda AnyDesk-ni o'rnatishning hojati yo'q. Tahlil shuni ko'rsatdiki, bu IPlar ko'pincha "kesishadi"Ro'yxatimizdan topilganlar bilan. Ehtimol, dastur ma'lum IP-larni "tartiblash" boshlanishidan oldin aynan shu xostga ulanadi. Men maqolani keyinroq xost qidiruvining 2-qismi bilan to'ldiraman, garchi hozirda dasturning o'zi umuman tashqi ulanishni tarmoq ichida o'rnatmaydi.

Umid qilamanki, siz yuqorida aytilganlarda hech qanday noqonuniy narsani ko'rmadingiz va AnyDesk yaratuvchilari mening harakatlarimga sportchicha munosabatda bo'lishadi.

Manba: www.habr.com

a Izoh qo'shish