AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi

Bir gün patron şu soruyu gündeme getirdiğinde: "Neden bazı insanlar ek kullanım izinleri almadan iş bilgisayarına uzaktan erişime sahip?"
Görev, boşluğu "kapatmak" için ortaya çıkıyor.

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi
Ağ üzerinden uzaktan kontrol için çok sayıda uygulama vardır: Chrome uzak masaüstü, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control vb. Chrome uzak masaüstünün hizmete erişimle mücadele için resmi bir kılavuzu varsa, TeamViewer'ın zaman veya isteklerle ilgili lisans kısıtlamaları vardır. ağdan ve kullanıcılar bir şekilde "dişlerini gıcırdatıyor" veya yöneticilerle "parlıyor", ardından kişisel kullanım için birçok kişinin favorisi - AnyDesk, özellikle patron "Hayır!"

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi
Bir ağ paketini içeriğine göre engellemenin ne olduğunu biliyorsanız ve bundan memnunsanız, malzemenin geri kalanı
amaçlanmadı senin için.

Aslında tam tersinden gitmeye çalışıyorum web sitesi programın çalışması için nelere izin verilmesi gerektiği yazıyor; buna göre DNS kaydı engellendi *.net.anydesk.com. Ancak AnyDesk basit değil; alan adının engellenmesiyle ilgilenmiyor.

Bir zamanlar bazı şüpheli yazılımlarla bize gelen “Her Yerde Kontrol” engelleme sorununu çözmüştüm ve bu sorun sadece birkaç IP'yi engelleyerek çözüldü (antivirüsü yedekledim). Bir düzineden fazla IP adresini manuel olarak topladıktan sonra AnyDesk ile ilgili sorun, beni kışkırttı Rutin manuel işçilikten uzaklaşın.

Ayrıca "C:ProgramDataAnyDesk" içerisinde ayarlar vb. içeren çok sayıda dosyanın olduğu ve dosyanın içinde bulunduğu keşfedildi. ad_svc.trace Bağlantılar ve arızalarla ilgili olaylar toplanır.

1. Gözlem

Daha önce de belirtildiği gibi *.anydesk.com'un engellenmesi programın işleyişinde herhangi bir sonuç vermedi, analiz edilmesine karar verildi Stresli durumlarda program davranışı. Sysinternals'tan TCPView sizin elinizde ve gidin!

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi

1.1. Bizi ilgilendiren birçok sürecin “asılı” olduğu ve yalnızca adresle dışarıdan iletişim kuran sürecin bizi ilgilendirdiği görülüyor. Bağlandığı portlar benim gördüğüm kadarıyla seçilmiş: 80, 443, 6568. 🙂 80 ve 443'ü kesinlikle engelleyemiyoruz.

1.2. Adresi yönlendirici aracılığıyla bloke ettikten sonra sessizce başka bir adres seçilir.

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi

1.3. Konsol bizim HER ŞEYİMİZ! PID'yi belirliyoruz ve sonra AnyDesk'in hizmet tarafından kurulduğu için biraz şanslıydım, dolayısıyla aradığımız PID tek PID'di.
1.4. Hizmet sunucusunun IP adresini işlem PID'sinden belirleriz.

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi

2. Hazırlık

IP adreslerini belirleme programı muhtemelen yalnızca benim bilgisayarımda çalışacağından, rahatlık ve tembellik konusunda herhangi bir kısıtlamam yok, dolayısıyla C#.

2.1. Gerekli IP adresini belirlemeye yönelik tüm yöntemler zaten bilinmektedir, uygulanmaya devam etmektedir.

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

Benzer şekilde bağlantıyı kuran servisi de buluyoruz, sadece ana hattı vereceğim

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

Bunun sonucu şöyle olacaktır:

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi
Önceki adıma benzer şekilde satırdan 3. sütunu çıkarın ve ":" işaretinden sonraki her şeyi kaldırın. Sonuç olarak istediğimiz IP'ye sahibiz.

2.2. Windows'ta IP engelleme. Linux'ta Blackhole ve iptables varsa, Windows'ta güvenlik duvarı kullanmadan bir IP adresini tek satırda engelleme yönteminin alışılmadık olduğu ortaya çıktı,
ama hangi araçlar vardı...

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

Anahtar parametre "1 eğer" rotayı Loopback'e gönderin (Rota yazdırmayı çalıştırarak mevcut arayüzleri görüntüleyebilirsiniz). VE ÖNEMLİ! Şimdi programın başlatılması gerekiyor yönetici haklarına sahip, çünkü rotayı değiştirmek yükseklik gerektirdiğinden.

2.3. Tanımlanan IP adreslerinin görüntülenmesi ve kaydedilmesi önemsiz bir iştir ve açıklama gerektirmez. Düşünürseniz dosyayı işleyebilirsiniz. ad_svc.trace AnyDesk'in kendisi, ama hemen düşünmedim + belki de bir sınırlama vardır.

2.4. Programın garip dengesiz davranışı, Windows 10'da hizmet sürecini "görev sonlandırırken" otomatik olarak yeniden başlatılması, Windows 8'de sona ermesi, yalnızca konsol sürecini bırakarak ve yeniden bağlanmadan, genel olarak mantıksız ve bu yanlış olmasıdır.

Sunucuya bağlanan bir işlemi kaldırmak, bir sonraki adrese yeniden bağlanmayı "zorlamanıza" olanak tanır. Önceki komutlarla aynı şekilde uygulanır, bu yüzden sadece şunu vereceğim:

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

Ayrıca AnyDesk programını başlatın.

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

2.5. AnyDesk'in durumunu dakikada bir (veya daha sık mı?) ve bağlı olup olmadığını kontrol edeceğiz; bağlantı KURULDU - bu IP'yi engelleyin ve tekrar baştan yapın - bağlanana kadar bekleyin, engelleyin ve bekleyin.

3. Saldırı

Kod "taslağı çizildi" ve sürecin görselleştirilmesine karar verildi "+" bulunan ve engellenen IP'yi belirtin ve "."—AnyDesk'ten başarılı bir komşu bağlantısı olmadan kontrolü tekrarlayın.

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi

Proje kodu

Sonuç olarak ...

AnyDesk örneğini kullanarak bir ağ üzerinden uzaktan bilgisayar kontrolü için bir uygulamayı engelleme olasılığının analizi
Program, AnyDesk 5 ve 6 sürümleriyle farklı Windows işletim sistemlerine sahip birkaç bilgisayarda çalıştı. 500'den fazla yineleme, yaklaşık 80 adres toplandı. 2500 - 87 ve benzeri için...

Zamanla engellenen IP'lerin sayısı 100'ün üzerine çıktı.

Finale bağlantı metin dosyası adreslerle: zaman и iki

Halloldu! IP adresleri havuzu, komut dosyası aracılığıyla ana yönlendiricinin kurallarına eklendi ve AnyDesk harici bir bağlantı oluşturamıyor.

Garip bir nokta var, ilk kayıtlardan adresin bilgi aktarımına karıştığı anlaşılıyor. boot-01.net.anydesk.com. Elbette genel kural olarak tüm *.net.anydesk.com barındırıcılarını engelledik ama bu garip bir şey değil. Her seferinde farklı bilgisayarlardan gelen normal bir ping ile bu alan adı farklı bir IP verir. Linux'ta kontrol ediliyor:

host boot-01.net.anydesk.com

DNSLookup gibi yalnızca bir IP adresi verirler ancak bu adres değişkendir. Bir TCPView bağlantısını analiz ederken, aşağıdaki türdeki IP adreslerinin PTR kayıtlarını döndürürüz röle-*.net.anydesk.com.

Teorik olarak: ping bazen bilinmeyen, engellenmemiş bir ana bilgisayara gittiğinden boot-01.net.anydesk.com bu ips'leri bulup engelleyebiliriz, bu uygulamayı Linux işletim sistemi altında normal bir script haline getirebiliriz, burada AnyDesk kurulumuna gerek yoktur. Analiz, bu IP'lerin sıklıkla "kesişmek"listemizde bulunanlarla. Belki de programın bilinen IP'leri "ayırmaya" başlamadan önce bağlandığı şey sadece bu ana bilgisayardır. Muhtemelen makaleyi daha sonra ana bilgisayar aramalarının 2. kısmıyla tamamlayacağım, ancak şu anda programın kendisi genel olarak ağ dış birleşimine yüklenmez.

Umarım yukarıda yasa dışı bir şey görmemişsinizdir ve AnyDesk'in yaratıcıları davranışlarıma sportmenlik çerçevesinde yaklaşacaktır.

Kaynak: habr.com

Yorum ekle