Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk

Quando un giorno il capo solleva la questione: «Perché alcuni hanno accesso remoto al computer aziendale senza ottenere ulteriori permessi?»,
nasce la necessità di «coprire» la falla.

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk
Ci sono molte applicazioni per il controllo remoto: Chrome Remote Desktop, Ammyy Admin, LiteManager, TeamViewer, Anyplace Control e altro. Se Chrome Remote Desktop ha un manuale ufficiale per combattere l'accesso al servizio, TeamViewer ha limitazioni di licenza in base al tempo o alle richieste di rete e gli utenti «soffrono» con i loro amministratori, il preferito da molti per uso personale — AnyDesk, richiede un'attenzione particolare, soprattutto se il capo ha detto «Non si può!».

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk
Se sai che cos'è il blocco del pacchetto di rete in base al suo contenuto e ti va bene, allora il resto del materiale
non è destinato a te.

Cercando di andare per tentativi, si sito affronta la questione di cosa debba essere consentito per il funzionamento del programma, di conseguenza è stata bloccata la registrazione DNS *.net.anydesk.com. Ma AnyDesk non è semplice; il blocco del nome di dominio non gli fa paura.

Un tempo avevo risolto il problema di bloccare «Anyplace Control», che ci arrivava insieme a qualche software sospetto, e la soluzione è stata quella di bloccare solo alcuni IP (per precauzione usavo anche l'antivirus). La questione con AnyDesk, dopo aver raccolto manualmente più di una dozzina di indirizzi IP, ha stimolato di allontanarmi dal lavoro manuale routinario.

È stato inoltre scoperto che in «C:ProgramDataAnyDesk» ci sono diversi file di configurazione e simili, e nel file ad_svc.trace si registrano eventi di collegamenti e fallimenti.

1. Osservazione

Come già detto, il blocco di *.anydesk.com non ha avuto alcun effetto sul funzionamento del programma, è stato deciso di analizzare il comportamento del programma in situazioni di stress.. TCPView di Sysinternals è in mano e via!

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk

1.1. Si vede che ci sono diversi processi interessanti 'appesi', e solo quello che si collega a un indirizzo esterno ci interessa. Le porte a cui si connette vengono testate, da ciò che ho visto sono: 80, 443, 6568. 🙂 80 e 443 non possiamo assolutamente bloccare.

1.2. Dopo aver bloccato l'indirizzo tramite il router, viene tranquillamente scelto un altro indirizzo.

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk

1.3. Консоль наше ВСЁ! Определяем PID и тут мне немного подфартило, что AnyDesk был установлен сервисом, соответсвенно искомый PID единственный.
1.4. Определяем по PID процесса IP адрес сервера сервисов.

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando 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""";

Результатом которой будет:

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk
Из строки аналогично перыдущему шагу извлекаем 3й столбец, и убираем все что после ":". Как результат имеем наш искомый IP.

2.2. Blocco IP in Windows. Se in Linux ci sono Blackhole e iptables, il metodo per bloccare un indirizzo IP in una sola riga, senza utilizzare un firewall, in Windows è risultato insolito.
ma che strumenti c'erano...

route add nostro_IP_trovato mask 255.255.255.255 10.113.113.113 if 1 -p

Il parametro chiave "if 1" invia il percorso alla Loopback (Per visualizzare le interfacce disponibili, eseguire route print). E IMPORTANTE! Ora il programma deve essere eseguito con diritti di amministratore, poiché la modifica del percorso richiede privilegi elevati.

2.3. La visualizzazione e il salvataggio degli indirizzi IP identificati è un compito banale e non richiede spiegazioni. Se ci pensi, si può elaborare anche un file ad_svc.trace del programma AnyDesk stesso, ma non ci ho pensato subito + forse c'è una restrizione su di esso.

2.4. Il comportamento strano e disomogeneo del programma consiste nel fatto che, durante il "taskkill" del processo del servizio in Windows 10, esso si riavvia automaticamente, mentre in Windows 8 termina, lasciando solo il processo della console e senza riconnessione; in generale, è illogico e impreciso.

La rimozione del processo connesso al server consente di "forzare" la riconnessione all'indirizzo successivo. Viene implementata in modo simile ai comandi precedenti, quindi riporto solo:

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

Avviamo inoltre il programma AnyDesk.

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

2.5. Controlleremo lo stato di AnyDesk una volta al minuto (o più spesso?), e se si è connesso, cioè la connessione è ESTABLISHED — bloccare questo IP, e ricominciare tutto da capo — attendere finché non si connette, bloccare e attendere.

3. Attacco

È stato "buttato" del codice per visualizzare il processo, si è deciso di "+" indicare l'IP trovato e bloccato, e "." — ripetere il controllo senza una connessione riuscita da parte di AnyDesk.

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk

Codice del progetto

Il risultato è…

Analisi della possibilità di bloccare un'applicazione per il controllo remoto di computer tramite rete, utilizzando AnyDesk
Il programma ha funzionato su diversi computer con vari sistemi operativi Windows, con versioni di AnyDesk 5 e 6. Dopo 500 iterazioni sono stati raccolti circa 80 indirizzi. Dopo 2500 — 87 e così via…

Nel tempo, il numero di IP bloccati è arrivato a oltre 100.

Link al file finale di testo con gli indirizzi: una volta e due volte

Fatto! Il pool di indirizzi IP è stato aggiunto alle regole del router principale tramite lo script e AnyDesk non può semplicemente stabilire una connessione esterna.

C'è un punto strano: dai log iniziali risulta che nella trasmissione delle informazioni è coinvolto l'indirizzo boot-01.net.anydesk.com. Certo, abbiamo bloccato tutti gli host *.net.anydesk.com con una regola generale, ma la stranezza non è questa. Ogni volta che facciamo un normale ping da diversi computer, questo nome di dominio restituisce un IP diverso. Verifica in Linux:

host boot-01.net.anydesk.com

, così come DNSLookup restituiscono solo un indirizzo IP, ma questo indirizzo è variabile. Analizzando le connessioni con TCPView otteniamo i record PTR degli indirizzi IP di tipo relay-*.net.anydesk.com.

Teoricamente: poiché il ping a volte riesce su un host sconosciuto non bloccato boot-01.net.anydesk.com possiamo trovare questi IP e bloccarli. Questa implementazione può essere fatta con un normale script per il sistema operativo Linux, non è necessario installare AnyDesk. L'analisi ha mostrato che questi IP spesso "si sovrappongono" con quelli trovati nella nostra lista. Potrebbe essere proprio questo l'host a cui si connette il programma prima di iniziare a "cercare" IP noti. Probabilmente completerò l'articolo con una seconda parte sulla ricerca degli host, anche se al momento il programma stesso nella rete non stabilisce alcuna connessione esterna.

Spero che non abbiate notato nulla di illegittimo in quanto sopra esposto, e che i creatori di AnyDesk prendano le mie azioni in modo sportivo.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster