Анализа на можноста за блокирање на апликација за далечинско компјутерско управување преку мрежа, користејќи го примерот на AnyDesk

Кога еден ден шефот го поставува прашањето: „Зошто некои луѓе имаат далечински пристап до работниот компјутер, без да добијат дополнителни дозволи за употреба?“
Се појавува задачата да се „затвори“ дупката.

Анализа на можноста за блокирање на апликација за далечинско компјутерско управување преку мрежа, користејќи го примерот на AnyDesk
Има многу апликации за далечинско управување преку мрежата: далечинска работна површина на Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control итн. од мрежата и корисниците „мешат заби“ на еден или друг начин „блескаат“ со администраторите, тогаш миленикот на многумина за лична употреба - AnyDesk сè уште бара посебно внимание, особено ако шефот рече „Не!“

Анализа на можноста за блокирање на апликација за далечинско компјутерско управување преку мрежа, користејќи го примерот на AnyDesk
Ако знаете што е блокирање на мрежен пакет според неговата содржина и сте задоволни со тоа, тогаш остатокот од материјалот
не е наменет за тебе.

Обидувајќи се да се тргне од спротивното, всушност Онлајн вели што треба да се дозволи за да работи програмата; соодветно, записот DNS беше блокиран *.net.anydesk.com. Но, AnyDesk не е едноставен; не се грижи за блокирање на име на домен.

Некогаш, го решив проблемот со блокирање на „Anyplace Control“, што ни дојде со некој сомнителен софтвер, а се реши со блокирање на само неколку IP-адреси (направив резервна копија на антивирусот). Проблемот со 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
Од редот, слично на претходниот чекор, извадете ја третата колона и отстранете сè по „:“. Како резултат на тоа, ја имаме нашата посакувана 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

Клучен параметар "ако 1" испратете ја маршрутата до Loopback (Можете да ги прикажете достапните интерфејси со печатење на маршрутата). И ВАЖНО! Сега програмата треба да се стартува со администраторски права, бидејќи менувањето на маршрутата бара надморска височина.

2.3. Прикажувањето и зачувувањето на идентификуваните IP адреси е тривијална задача и не бара објаснување. Ако размислите за тоа, можете да ја обработите датотеката ad_svc.trace Самиот AnyDesk, но не размислував за тоа веднаш + можеби има ограничување на тоа.

2.4. Чудното нерамномерно однесување на програмата е што при „задача“ на сервисниот процес во 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.

Анализа на можноста за блокирање на апликација за далечинско компјутерско управување преку мрежа, користејќи го примерот на AnyDesk

Код на проектот

Како резултат…

Анализа на можноста за блокирање на апликација за далечинско компјутерско управување преку мрежа, користејќи го примерот на AnyDesk
Програмата работеше на неколку компјутери со различен Windows OS, со верзии на AnyDesk 5 и 6. Собрани се над 500 повторувања, околу 80 адреси. За 2500 - 87 и така натаму...

Со текот на времето, бројот на блокирани IP-адреси достигна 100+.

Линк до финалето текстуална датотека со адреси: време и два

Тоа е направено! Базенот на IP адреси беше додаден на правилата на главниот рутер преку скриптата и AnyDesk едноставно не може да создаде надворешна врска.

Има една чудна поента, од првичните логови е јасно дека адресата е вклучена во преносот на информации boot-01.net.anydesk.com. Се разбира, ги блокиравме сите хостови *.net.anydesk.com како општо правило, но тоа не е чудната работа. Секој пат со нормален пинг од различни компјутери, ова име на домен дава различна IP адреса. Проверка на Linux:

host boot-01.net.anydesk.com

како DNSLookup тие даваат само една IP адреса, но оваа адреса е променлива. Кога анализираме TCPView конекција, ни се враќаат PTR записи на IP адреси од типот реле-*.net.anydesk.com.

Теоретски: бидејќи пинг понекогаш оди до непознат деблокиран домаќин boot-01.net.anydesk.com можеме да ги најдеме овие IP и да ги блокираме, да ја направиме оваа имплементација редовна скрипта под Linux OS, тука нема потреба да се инсталира AnyDesk. Анализата покажа дека овие IP адреси често "се вкрстуваат„Со оние кои се пронајдени од нашата листа. Можеби токму овој хост со кој се поврзува програмата пред да почне да ги „средува“ познатите IP-адреси. самата програма воопшто не се инсталира во рамките на надворешниот приклучок на мрежата.

Се надевам дека не видовте ништо незаконско во горенаведеното, а креаторите на AnyDesk ќе ги третираат моите постапки на спортски начин.

Извор: www.habr.com

Додадете коментар