Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk

Cando un día o xefe formula a pregunta: "Por que algunhas persoas teñen acceso remoto a un ordenador do traballo sen obter permisos adicionais para o seu uso?",
hai unha tarefa para "tapar" unha fenda.

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk
Hai moitas aplicacións para o control remoto na rede: escritorio remoto Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, etc. Se o escritorio remoto Chrome ten un manual oficial para combater o acceso ao servizo, TeamViewer ten restricións de licenza a tempo ou solicitudes. da rede e os usuarios "rechinan os dentes" dalgún xeito "brillan" aos administradores, entón o favorito de moitos para uso persoal - AnyDesk aínda require unha atención especial, especialmente se o xefe dixo "Non!".

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk
Se sabes o que é o bloqueo dun paquete de rede polo seu contido e che convén, entón o resto do material
non pretendido para ti.

Tentando ir do contrario, de feito On-line di o que se debe permitir para que o programa funcione, respectivamente, o rexistro DNS foi bloqueado *.net.anydesk.com. Pero AnyDesk non é sinxelo, non lle importa bloquear un nome de dominio.

Unha vez resolvín o problema de bloquear "Anyplace Control" que nos chegou con algún software dubidoso, e resolveuse bloqueando só unhas poucas IP (protexei o antivirus). O problema con AnyDesk, despois de que recollinei manualmente máis dunha ducia de enderezos IP, provocado afastarse do traballo manual rutineiro.

Tamén se comprobou que en "C: ProgramDataAnyDesk" hai unha serie de ficheiros con configuracións, etc., e no ficheiro ad_svc.trace recóllense eventos sobre conexións e fallos.

1. Observación

Como xa se mencionou, o bloqueo de *.anydesk.com non deu ningún resultado no programa, decidiuse analizar programa de comportamento en situacións estresantes. TCPView de Sysinternals na man e listo!

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk

1.1. Pódese ver que están “colgados” varios procesos que nos interesan, e só nos interesa o que se comunica co enderezo desde fóra. Os portos aos que se conecta son movidos, polo que o vin: 80, 443, 6568. 🙂 80 e 443 definitivamente non podemos bloquear.

1.2. Despois de bloquear o enderezo a través do enrutador, selecciónase silenciosamente outro enderezo.

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk

1.3. A nosa consola é TODO! Determinamos o PID e entón tiven un pouco de sorte que AnyDesk foi instalado polo servizo, respectivamente, o PID que buscaba é o único.
1.4. Determinamos o enderezo IP do servidor de servizo polo PID do proceso.

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk

2. Preparación

Dado que o programa para descubrir enderezos IP probablemente só funcionará no meu PC, non teño restricións de comodidade e preguiza, polo que C#.

2.1. Xa se coñecen todos os métodos para identificar o enderezo IP desexado, aínda está por implementar.

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

Do mesmo xeito, atopamos o servizo que estableceu a conexión, vou dar só a liña principal

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

O resultado do cal será:

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk
Da liña, do mesmo xeito que no paso anterior, extraemos a 3a columna e eliminamos todo despois do ":". Como resultado, temos a nosa IP desexada.

2.2. Bloqueo de IP en Windows. Se Linux ten Blackhole e iptables, entón o método de bloquear un enderezo IP nunha liña, sen usar un firewall, resultou ser inusual en Windows,
Pero que ferramentas eran...

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

Parámetro clave "se 1" envía a ruta a Loopback (Podes mostrar as interfaces dispoñibles executando ruta print ). E IMPORTANTE! Agora hai que executar o programa con dereitos de administradorporque cambiar a ruta require elevación.

2.3. Mostrar e gardar os enderezos IP identificados é unha tarefa trivial e non require explicación. Se o pensas, podes procesar o ficheiro ad_svc.trace AnyDesk en si, pero non pensei niso inmediatamente + quizais haxa unha restrición.

2.4. O estraño comportamento desigual do programa é que cando o proceso de servizo é "taskkilled" en Windows 10, reinicia automaticamente, en Windows 8 remata, deixando só o proceso da consola e sen volver conectar, en xeral, é ilóxico e impreciso.

Eliminar un proceso que se conectou ao servidor permítelle "forzar" unha reconexión ao seguinte enderezo. Implétase de xeito similar aos comandos anteriores, polo que só dou:

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

Ademais, inicie o programa AnyDesk.

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

2.5. Comprobaremos o estado de AnyDesk unha vez por minuto (ou con máis frecuencia?), e se está conectado, é dicir. conexión ESTABLECIDA: bloquea esta IP e, de novo, agarda ata que se conecte, bloquee e agarde.

3. Asalto

O código foi "elaborado", decidiuse visualizar o proceso "+" especifique a IP atopada e bloqueada e "." - comprobación repetida sen conexión exitosa desde AnyDesk.

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk

Código do proxecto

Como resultado…

Análise da posibilidade de bloquear unha aplicación para o control remoto dun ordenador a través dunha rede, utilizando o exemplo de AnyDesk
O programa funcionou en varios ordenadores con sistema operativo Windows diferente, coas versións 5 e 6 de AnyDesk. Recolléronse preto de 500 enderezos en 80 iteracións. Para 2500 - 87 e así por diante...

Co paso do tempo, o número de IP bloqueadas alcanzou máis de 100.

Ligazón á final ficheiro de texto con enderezos: tempo и два

Xa está feito! Engádese un conxunto de enderezos IP ás regras do enrutador principal mediante un script e AnyDesk simplemente non pode crear unha conexión externa.

Hai un momento estraño, segundo os rexistros iniciais, está claro que o enderezo está implicado na transferencia de información boot-01.net.anydesk.com. Por suposto, bloqueamos todos os servidores *.net.anydesk.com como regra xeral, pero esa non é o raro. Cada vez que un ping normal de diferentes ordenadores este nome de dominio dá unha IP diferente. Comprobando en Linux:

host boot-01.net.anydesk.com

como DNSLookup, só dan un enderezo IP, pero este enderezo é variable. Ao analizar unha conexión TCPView, obtemos rexistros PTR de enderezos IP como relé-*.net.anydesk.com.

Teoricamente: xa que o ping ás veces vai a un host desbloqueado descoñecido boot-01.net.anydesk.com podemos atopar estes ip e bloquear, facer que esta implementación sexa un script normal baixo o sistema operativo Linux, aquí non é necesario instalar AnyDesk. A análise mostrou que estas IP son moitas veces "cruzar" cos atopados na nosa lista. Quizais este sexa só este host, ao que se conecta o programa antes de que comece a "ordenar" as IP coñecidas. Probablemente máis adiante complementarei o artigo coa segunda parte das buscas de hosts, aínda que polo momento. o programa en si non instala outer join en xeral.

Espero que non viches nada ilegal no anterior, e os creadores de AnyDesk tratarán as miñas accións dun xeito deportivo.

Fonte: www.habr.com

Engadir un comentario