تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk

هنگامی که یک روز رئیس این سوال را مطرح می کند: "چرا برخی از افراد بدون دریافت مجوزهای اضافی برای استفاده، به رایانه کاری از راه دور دسترسی دارند؟"
وظیفه ای برای "پوشاندن" یک شکاف وجود دارد.

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk
برنامه‌های زیادی برای کنترل از راه دور روی شبکه وجود دارد: دسک‌تاپ از راه دور Chrome، AmmyAdmin، LiteManager، TeamViewer، Anyplace Control، و غیره. اگر دسک‌تاپ از راه دور Chrome یک کتابچه راهنمای رسمی برای مبارزه با دسترسی به سرویس دارد، TeamViewer دارای محدودیت‌های مجوز در زمان یا درخواست است. از شبکه و کاربرانی که "دندان های خود را به هم می سایند" به نوعی با ادمین ها "درخشش" می کنند، سپس مورد علاقه بسیاری برای استفاده شخصی - AnyDesk هنوز به توجه ویژه نیاز دارد، به خصوص اگر رئیس گفت "نه!".

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk
اگر می دانید مسدود کردن یک بسته شبکه توسط محتویات آن چیست و برای شما مناسب است، بقیه مطالب
در نظر گرفته نشده است برای شما.

تلاش برای رفتن از نقطه مقابل، در واقع کاربران آنلاین حاضر در سایت " می گوید چه چیزی باید برای کارکرد برنامه مجاز باشد، به ترتیب، رکورد DNS مسدود شده است *.net.anydesk.com. اما AnyDesk ساده نیست، به مسدود کردن نام دامنه اهمیتی نمی دهد.

یک بار مشکل مسدود کردن "Anyplace Control" را که با یک نرم افزار مشکوک برای ما آمده بود حل کردم و فقط با مسدود کردن چند آی پی حل شد (آنتی ویروس را ایمن کردم). مشکل AnyDesk، پس از جمع آوری دستی بیش از دوازده آدرس IP، تحریک شده است از کار معمولی دستی دور شوید

همچنین مشخص شد که در "C: ProgramDataAnyDesk" تعدادی فایل با تنظیمات و غیره وجود دارد و در فایل ad_svc.trace رویدادهای مربوط به اتصالات و خرابی ها جمع آوری می شوند.

1. مشاهده

همانطور که قبلا ذکر شد، مسدود کردن *.anydesk.com هیچ نتیجه ای در برنامه نداشت، تصمیم به تجزیه و تحلیل گرفته شد. رفتار برنامه ریزی شده در موقعیت های استرس زا. TCPView از Sysinternals در دست و برو!

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk

1.1. مشاهده می شود که چندین فرآیند مورد علاقه ما "آویزان" هستند و فقط یکی از آنها که از بیرون با آدرس ارتباط برقرار می کند برای ما جالب است. پورت هایی که به آن وصل می شود منتقل شده اند، از آنچه من دیدم: 80، 443، 6568. 🙂 80 و 443 را قطعا نمی توانیم مسدود کنیم.

1.2. پس از مسدود کردن آدرس از طریق روتر، آدرس دیگری بی سر و صدا انتخاب می شود.

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk

1.3. کنسول ما همه چیز است! ما PID را تعیین می کنیم و سپس کمی شانس آوردم که AnyDesk توسط سرویس نصب شده است، به ترتیب PID مورد نظر من تنها موردی است.
1.4. ما آدرس IP سرور سرویس را با PID فرآیند تعیین می کنیم.

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk

2. آماده سازی

از آنجایی که برنامه کشف آدرس های IP احتمالا فقط روی رایانه شخصی من کار می کند، من هیچ محدودیتی در راحتی و تنبلی ندارم، بنابراین C#.

2.1. تمام روش های شناسایی آدرس IP مورد نظر از قبل شناخته شده است، هنوز باید اجرا شود.

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

به طور مشابه، ما سرویسی را پیدا می کنیم که اتصال را برقرار کرده است، من فقط خط اصلی را می دهم

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

که نتیجه آن خواهد بود:

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk
از خط، مانند مرحله قبل، ستون 3 را استخراج می کنیم و همه چیز را بعد از ":" حذف می کنیم. در نتیجه ما IP مورد نظر خود را داریم.

2.2. مسدود کردن IP در ویندوز اگر لینوکس دارای Blackhole و iptable باشد، روش مسدود کردن آدرس IP در یک خط، بدون استفاده از فایروال، در ویندوز غیرمعمول است.
اما چه ابزاری ...

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

پارامتر کلیدی "اگر 1" مسیر را به Loopback بفرستید (شما می توانید رابط های موجود را با اجرای route print نمایش دهید). و مهم است! اکنون برنامه باید اجرا شود با حقوق مدیرزیرا تغییر مسیر نیاز به ارتفاع دارد.

2.3. نمایش و ذخیره آدرس های IP شناسایی شده یک کار بی اهمیت است و نیازی به توضیح ندارد. اگر در مورد آن فکر کنید، می توانید فایل را پردازش کنید ad_svc.trace خود AnyDesk ، اما من بلافاصله به آن فکر نکردم + شاید محدودیتی در آن وجود داشته باشد.

2.4. رفتار نابرابر عجیب برنامه این است که وقتی فرآیند سرویس در ویندوز 10 "taskkilled" می شود، به طور خودکار ریستارت می شود، در ویندوز 8 به پایان می رسد و فقط فرآیند کنسول باقی می ماند و به طور کلی بدون اتصال مجدد، غیر منطقی و نادرست است.

حذف فرآیندی که به سرور متصل شده است به شما این امکان را می دهد که اتصال مجدد را به آدرس بعدی "اجبار" کنید. به طور مشابه با دستورات قبلی اجرا می شود، بنابراین من فقط می دهم:

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

علاوه بر این، برنامه AnyDesk را راه اندازی کنید.

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

2.5. ما وضعیت AnyDesk را یک بار در دقیقه (یا بیشتر اوقات؟) بررسی می کنیم، و اگر متصل باشد، یعنی. اتصال برقرار شد - این IP را مسدود کنید، و دوباره دوباره - صبر کنید تا متصل شود، مسدود کنید و منتظر بمانید.

3. حمله

کد "پیش نویس" شد، تصمیم گرفته شد که روند را تجسم کنیم "+"آی پی یافت شده و مسدود شده را مشخص کنید و".- بررسی مکرر بدون اتصال موفقیت آمیز از AnyDesk.

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk

کد پروژه

در نتیجه…

تجزیه و تحلیل امکان مسدود کردن یک برنامه برای کنترل از راه دور یک کامپیوتر از طریق شبکه، با استفاده از مثال AnyDesk
این برنامه بر روی چندین کامپیوتر با سیستم‌عامل ویندوز مختلف، با نسخه‌های AnyDesk 5 و 6 کار می‌کرد. حدود 500 آدرس در 80 تکرار جمع‌آوری شد. برای 2500 - 87 و غیره ...

با گذشت زمان، تعداد IP های مسدود شده به بیش از 100 رسید.

لینک نهایی فایل متنی با آدرس های: زمان и два

انجام شده است! مجموعه ای از آدرس های IP از طریق یک اسکریپت به قوانین روتر اصلی اضافه می شود و AnyDesk به سادگی نمی تواند یک اتصال خارجی ایجاد کند.

لحظه عجیبی وجود دارد، با توجه به گزارش های اولیه مشخص است که آدرس در انتقال اطلاعات نقش دارد boot-01.net.anydesk.com. ما البته همه هاست های *.net.anydesk.com را به عنوان یک قانون کلی مسدود کرده ایم، اما این عجیب نیست. هر بار یک پینگ معمولی از رایانه های مختلف، این نام دامنه یک IP متفاوت می دهد. بررسی در لینوکس:

host boot-01.net.anydesk.com

مانند DNSLookup، آنها فقط یک آدرس IP می دهند، اما این آدرس متغیر است. هنگام تجزیه یک اتصال TCPView، ما رکوردهای PTR از آدرس های IP مانند آن را دریافت می کنیم relay-*.net.anydesk.com.

از نظر تئوری: از آنجایی که پینگ گاهی اوقات به یک هاست مسدود نشده ناشناخته می رود boot-01.net.anydesk.com ما می‌توانیم این ip را پیدا کرده و بلاک کنیم، این پیاده‌سازی را به یک اسکریپت معمولی تحت سیستم عامل لینوکس تبدیل کنیم، در اینجا نیازی به نصب AnyDesk نیست. تجزیه و تحلیل نشان داد که این IP ها اغلب "تقاطع" با مواردی که از لیست ما یافت شده است. شاید این فقط این میزبان باشد که برنامه قبل از شروع "مرتب سازی" IP های شناخته شده به آن متصل می شود. احتمالاً بعداً مقاله را با قسمت دوم جستجوهای میزبان تکمیل خواهم کرد، اگرچه در حال حاضر خود برنامه به طور کلی اتصال خارجی را نصب نمی کند.

امیدوارم در موارد بالا چیز غیرقانونی ندیده باشید و سازندگان AnyDesk با اقدامات من رفتاری ورزشی داشته باشند.

منبع: www.habr.com

اضافه کردن نظر