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.

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!"

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!

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.

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.

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:
![]()
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. IP-manzilni bloklash Windows... Agarda Linux Agar sizda Blackhole va iptables bo'lsa, unda xavfsizlik devoridan foydalanmasdan bitta satrda IP manzillarini blokirovka qilish usuli mavjud Windows g'ayrioddiy bo'lib chiqdi,
lekin qanday asboblar bor edi ...
route add наш_найденный_IP_адрес mask 255.255.255.255 10.113.113.113 if 1 -pAsosiy 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 notekisligi shundaki, siz xizmat jarayonini "taskkill" qilganingizda Windows 10 u avtomatik ravishda qayta ishga tushadi, Windows 8 tugaydi, faqat konsol jarayoni qoladi va qayta ulanmasdan, umuman olganda, bu mantiqsiz 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.

→
Natijada…

Dastur turli xil kompyuterlarda ishladi Windows AnyDesk 5 va 6 versiyalari bilan ishlaydigan operatsion tizim. 500 ta iteratsiyadan so'ng, taxminan 80 ta manzil to'plandi. 2500, 87 va hokazolardan keyin...
Vaqt o'tishi bilan bloklangan IP-lar soni 100+ ga yetdi.
Finalga havola matn fayli manzillar bilan: и
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.comBiz umumiy qoida sifatida barcha *.net.anydesk.com xostlarini blokladik, ammo bu g'alati emas. Har safar biz ushbu domen nomiga turli kompyuterlardan ping yuborganimizda, u turli IP-manzilni qaytaradi. Tekshiruv Linux:
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 manzillarni topib, ularni bloklashimiz mumkin. Buni OT ostida oddiy skript yordamida amalga oshirish mumkin. Linux, bu yerda AnyDesk ni o'rnatish shart emas. Tahlil shuni ko'rsatdiki, bu IP manzillar ko'pinchakesishadi"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
