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
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. 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.
β
Natijadaβ¦
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:
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