تنشأ المهمة "لإغلاق" الثغرة.

هناك الكثير من التطبيقات للتحكم عن بعد على الشبكة: سطح المكتب البعيد من Chrome ، AmmyAdmin ، LiteManager ، TeamViewer ، Anyplace Control ، إلخ. إذا كان سطح المكتب البعيد من Chrome يحتوي على دليل رسمي حول مكافحة توفر الوصول إلى الخدمة ، فإن برنامج TeamViewer لديه قيود ترخيص على الوقت أو الطلبات من الشبكة والمستخدمين "يطحنون أسنانهم" بطريقة أو بأخرى "يلمعون" على المسؤولين ، ثم المفضل لدى الكثيرين للاستخدام الشخصي - لا يزال AnyDesk يتطلب اهتمامًا خاصًا ، خاصة إذا قال الرئيس "لا!"
![]() |
إذا كنت تعرف ما هو حظر حزمة شبكة بمحتواها وكنت راضيًا عن ذلك ، فإن بقية المواد
ليست مخصصة لك. |
في محاولة للانتقال من العكس ، يقول الموقع نفسه ما يجب السماح به للبرنامج للعمل ، على التوالي ، تم حظر سجل DNS * .net.anydesk.com . لكن AnyDesk ليس بالأمر السهل ، فهو لا يهتم بحظر اسم المجال.
تحديث 15.08.
اقترح الحل الصحيح لمنع AnyDesk الشمندر 123:
relays.net.anydesk.com
391 . , .
[bash#]host relays.net.anydesk.com
391 . , .
بمجرد حل مشكلة حظر "Anyplace Control" التي جاءت إلينا مع بعض البرامج المشبوهة وتم حلها عن طريق حظر عدد قليل فقط من عناوين IP (لقد قمت بتأمين مضاد الفيروسات). المهمة مع AnyDesk، بعد أن يدويا جمع أكثر من عشرة عناوين IP، شجعني الابتعاد عن العمل اليدوي الروتيني.
كما تم اكتشاف أنه في "C: \ ProgramData \ AnyDesk" يوجد عدد من الملفات ذات الإعدادات وما إلى ذلك ، ويتم جمع الأحداث المتعلقة بالاتصالات والفشل في ملف ad_svc.trace .
1. الملاحظة
كما سبق ذكره ، فإن حجب * .anydesk.com لم يعط أي نتائج في عمل البرنامج ، فقد تقرر تحليل سلوك البرنامج في المواقف العصيبة . TCPView من Sysinternals في متناول اليد وانطلق!
1.1. يمكن ملاحظة أن العديد من العمليات التي تهمنا "معلقة" ، ولا يهمنا سوى العملية المتصلة بالعنوان من الخارج. يتم فرز المنافذ التي يتصل بها ، مما رأيته: 80 و 443 و 6568. :) 80 و 443 لا يمكننا بالتأكيد حظرها.
1.2 بعد حظر العنوان من خلال جهاز التوجيه ، يتم تحديد عنوان آخر بهدوء.
| 1.3 وحدة التحكم هي كل شيء لدينا! نحدد PID وهنا كنت محظوظًا بعض الشيء لأن AnyDesk قد تم تثبيته بواسطة الخدمة ، على التوالي ، PID المطلوب هو الوحيد. | 1.4. نحدد عنوان IP لخادم الخدمة من خلال عملية PID. |
![]() |
|
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\"\"";
ستكون نتيجتها:

من الصف ، على غرار الخطوة السابقة ، استخرج العمود الثالث ، وأزل كل شيء بعد ":". نتيجة لذلك ، لدينا عنوان IP المطلوب.
2.2. حظر IP في Windows. إذا كان Linux يحتوي على Blackhole و iptables ، فإن طريقة حظر عنوان IP في سطر واحد ، دون استخدام جدار حماية ، تبين أنها غير عادية في Windows ،
ولكن ما هي الأدوات ...
route add __IP_ mask 255.255.255.255 10.113.113.113 if 1 -p
المعلمة الرئيسية " if 1 " هي إرسال المسار إلى Loopback (يمكنك عرض الواجهات المتاحة عن طريق تشغيل طباعة المسار). ومهم! الآن يجب تشغيل البرنامج بحقوق المسؤول ، لأن تغيير المسار يتطلب ارتفاعًا.
2.3 يعد عرض وحفظ عناوين IP المكتشفة مهمة تافهة ولا تتطلب شرحًا. إذا فكرت في الأمر ، فيمكنك أيضًا معالجة ملف ad_svc.trace الخاص بـ AnyDesk نفسه ، لكنني لم أفكر في ذلك على الفور + ربما هناك قيود عليه.
2.4 السلوك الغريب غير المتكافئ للبرنامج هو أنه عندما تتم عملية Taskkill الخاصة بالخدمة في نظام التشغيل Windows 10 ، يتم إعادة التشغيل تلقائيًا ، وينتهي الأمر في Windows 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. الهجوم
تم "رسم الرمز" ، لتصور العملية ، تقرر " + " للإشارة إلى IP الذي تم العثور عليه والمحظور ، و " . " - لتكرار الفحص بدون اتصال ناجح من AnyDesk.
→ رمز المشروع
نتيجة لذلك ...

عمل البرنامج على العديد من أجهزة الكمبيوتر بنظام تشغيل Windows مختلف ، مع إصدارات AnyDesk 5 و 6. تم جمع حوالي 80 عنوانًا في 500 تكرار. أكثر من 2500 - 87 وما إلى ذلك ...
بمرور الوقت ، وصل عدد عناوين IP المحظورة إلى 100+.
رابط إلى الملف النصي النهائي (القائمة السوداء) بالعناوين: >> واحد << و >> اثنان <<
لقد تم! تمت إضافة مجموعة عناوين IP من خلال البرنامج النصي إلى قواعد جهاز التوجيه الرئيسي ولا يمكن لـ AnyDesk ببساطة إنشاء اتصال خارجي.
هناك لحظة غريبة ، وفقًا للسجلات الأولية فمن الواضح أن العنوان boot-01.net.anydesk.com متورط في نقل المعلومات... بالطبع ، قمنا بحظر جميع مضيفي * .net.anydesk.com كقاعدة عامة ، لكن هذا ليس غريبًا. في كل مرة باستخدام ping عادي من أجهزة كمبيوتر مختلفة ، يعطي اسم المجال هذا عنوان IP مختلفًا. تحقق في Linux:
host boot-01.net.anydesk.com
مثل DNSLookup يعطي عنوان IP واحدًا فقط ، لكن هذا العنوان متغير. عند تحليل اتصال TCPView ، نعيد سجلات PTR لعناوين IP من النوع المرحل - *. Net.anydesk.com .
نظريًا: نظرًا لأن ping ينتقل أحيانًا إلى مضيف غير محظور boot-01.net.anydesk.com ، يمكننا العثور على عنوان IP هذا وحظره ، وجعل هذا التطبيق نصيًا عاديًا في نظام Linux OS ، فلن تحتاج إلى تثبيت AnyDesk هنا. أظهر التحليل أن عناوين IP هذه غالبًا " تتداخل"مع تلك الموجودة في قائمتنا. ربما يكون هذا هو المضيف فقط ، الذي يتصل به البرنامج قبل أن يبدأ في البحث عن عناوين IP المعروفة. ربما سأكمل المقالة لاحقًا بالجزء الثاني من البحث عن المضيفين ، على الرغم من عدم تثبيت البرنامج نفسه داخل الشبكة في الوقت الحالي الاتصال الخارجي بشكل عام
تحديث 15.08.2020: لفت مستخدم Habr @ prymalbeets123 انتباهي إلى حقيقة أن هناك مضيف relays.net.anydesk.comالذي يتوافق مع 391 عنوان IP ، يمكن العثور على الملف مع قائمتهم على الروابط أعلاه على النحو الصحيح. من الملاحظ أن لدي عددًا أقل من العناوين التي تم جمعها من خلال مراقبة برنامج AnyDesk ، ولكن هناك عناوين لم يتم تضمينها في 391 العام ويتم حلها بواسطة أسماء المجال "اليسرى" ، اتضح أنني أيضًا "جمعت" عناوين أولئك الذين بدأوا الاتصال بجهاز الكمبيوتر الخاص بي :).
أتمنى ألا ترى أي شيء غير قانوني في ما سبق ، وسوف يتعامل مبدعو AnyDesk مع أفعالي بطريقة رياضية.

