Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk

Ketika suatu hari bos mengajukan pertanyaan: β€œMengapa beberapa orang memiliki akses jarak jauh ke komputer kerja, tanpa memperoleh izin tambahan untuk menggunakannya?”
ada tugas untuk "menutupi" celah tersebut.

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk
Ada banyak aplikasi untuk kendali jarak jauh melalui jaringan: Chrome desktop jarak jauh, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, dll. Jika Chrome desktop jarak jauh memiliki manual resmi untuk memerangi akses ke layanan, TeamViewer memiliki batasan lisensi pada waktu atau permintaan dari jaringan dan pengguna "mengertakkan gigi" entah bagaimana "bersinar" dengan admin, lalu favorit banyak orang untuk penggunaan pribadi - AnyDesk masih memerlukan perhatian khusus, terutama jika bos mengatakan "Tidak!".

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk
Jika Anda mengetahui apa itu pemblokiran paket jaringan berdasarkan isinya dan Anda puas dengannya, maka materi selanjutnya
tidak dimaksudkan Untukmu.

Faktanya, mencoba untuk beralih dari yang sebaliknya Online dikatakan apa yang harus diizinkan agar program dapat berfungsi, masing-masing, catatan DNS diblokir *.net.anydesk.com. Tapi AnyDesk tidak sederhana, tidak peduli dengan pemblokiran nama domain.

Setelah saya memecahkan masalah pemblokiran "Anyplace Control" yang datang kepada kami dengan beberapa perangkat lunak yang meragukan, dan diselesaikan dengan memblokir hanya beberapa IP (saya mengamankan antivirus). Masalah dengan AnyDesk, setelah saya mengumpulkan lebih dari selusin alamat IP secara manual, terprovokasi menjauh dari pekerjaan manual rutin.

Ditemukan juga bahwa di "C: ProgramDataAnyDesk" ada sejumlah file dengan pengaturan, dll., dan di dalam file ad_svc.trace peristiwa tentang koneksi dan kegagalan dikumpulkan.

1. Pengamatan

Seperti yang telah disebutkan, pemblokiran *.anydesk.com tidak memberikan hasil apa pun dalam program ini, diputuskan untuk menganalisis perilaku program dalam situasi stres. TCPView dari Sysinternals ada di tangan Anda dan berangkat!

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk

1.1. Dapat dilihat bahwa beberapa proses yang menarik bagi kami sedang β€œmenggantung”, dan hanya proses yang berkomunikasi dengan alamat dari luar yang menarik bagi kami. Port yang dihubungkannya dipindahkan, dari yang saya lihat: 80, 443, 6568. πŸ™‚ 80 dan 443 pasti tidak bisa kita blokir.

1.2. Setelah memblokir alamat melalui router, alamat lain dipilih secara diam-diam.

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk

1.3. Konsol kami adalah segalanya! Kami menentukan PID dan kemudian saya sedikit beruntung karena AnyDesk telah diinstal oleh layanan tersebut, masing-masing, PID yang saya cari adalah satu-satunya.
1.4. Kami menentukan alamat IP server layanan dari proses PID.

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk

2. Persiapan

Karena program untuk menemukan alamat IP mungkin hanya akan bekerja pada PC saya, saya tidak memiliki batasan kenyamanan dan kemalasan, jadi C#.

2.1. Semua metode untuk mengidentifikasi alamat IP yang diperlukan sudah diketahui, masih harus diterapkan.

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ΠΉ элСмСнт Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ
}

Demikian pula, kami menemukan layanan yang membuat koneksi, saya hanya akan memberikan jalur utama

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

Hasilnya adalah:

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk
Dari baris, mirip dengan langkah sebelumnya, kita mengekstrak kolom ke-3, dan menghapus semuanya setelah ":". Hasilnya, kami memiliki IP yang kami inginkan.

2.2. Pemblokiran IP di Windows. Jika Linux memiliki Blackhole dan iptables, maka cara memblokir alamat IP dalam satu baris, tanpa menggunakan firewall, ternyata tidak biasa di Windows,
tapi alat macam apa yang ada di sana...

route add наш_Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ_IP_адрСс mask 255.255.255.255 10.113.113.113 if 1 -p

Parameter kunci "jika 1" kirim rute ke Loopback (Anda dapat menampilkan antarmuka yang tersedia dengan menjalankan print rute). Dan PENTING! Sekarang program perlu dijalankan dengan hak administratorkarena mengubah rute memerlukan ketinggian.

2.3. Menampilkan dan menyimpan alamat IP yang teridentifikasi adalah tugas yang sepele dan tidak memerlukan penjelasan. Jika dipikir-pikir, Anda dapat memproses file tersebut ad_svc.trace AnyDesk sendiri, tapi saya tidak langsung memikirkannya + mungkin ada batasannya.

2.4. Perilaku aneh yang tidak merata dari program ini adalah ketika "taskkilling" proses layanan di Windows 10, ia restart secara otomatis, di Windows 8 berakhir, hanya menyisakan proses konsol dan tanpa menghubungkan kembali, secara umum tidak logis dan ini tidak akurat.

Menghapus proses yang telah terhubung ke server memungkinkan Anda untuk β€œmemaksa” koneksi ulang ke alamat berikutnya. Ini diterapkan dengan cara yang sama seperti perintah sebelumnya, jadi saya akan memberikannya saja:

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

Selain itu, luncurkan program AnyDesk.

 //запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ которая располоТСна ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ path_pro
if (File.Exists(path_pro)){ 
Process p1 = Process.Start(path_pro);}

2.5. Kami akan memeriksa status AnyDesk satu menit sekali (atau lebih sering?), dan apakah sudah terhubung, mis. koneksi ESTABLISHED - blokir IP ini, dan ulangi lagi - tunggu hingga terhubung, blokir dan tunggu.

3. Penyerangan

Kode telah "dirancang", diputuskan untuk memvisualisasikan prosesnya "+" menunjukkan IP yang ditemukan dan diblokir, dan "."β€”ulangi pemeriksaan tanpa koneksi tetangga yang berhasil dari AnyDesk.

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk

β†’ Kode proyek

Hasil dari…

Analisis kemungkinan pemblokiran aplikasi untuk kendali jarak jauh komputer melalui jaringan, menggunakan contoh AnyDesk
Program ini bekerja pada beberapa komputer dengan OS Windows berbeda, dengan AnyDesk versi 5 dan 6. Sekitar 500 alamat dikumpulkan dalam 80 iterasi. Untuk 2500 - 87 dan seterusnya...

Seiring waktu, jumlah IP yang diblokir mencapai 100+.

Tautan ke final berkas teks dengan alamat: waktu ΠΈ Π΄Π²Π°

Selesai! Kumpulan alamat IP ditambahkan ke aturan router utama melalui skrip, dan AnyDesk tidak dapat membuat koneksi eksternal.

Ada yang aneh, dari log awal terlihat jelas bahwa alamat terlibat dalam transfer informasi boot-01.net.anydesk.com. Kami tentu saja memblokir semua host *.net.anydesk.com sebagai aturan umum, tapi itu bukan keanehannya. Setiap kali ping normal dari komputer berbeda, nama domain ini memberikan IP berbeda. Memeriksa di Linux:

host boot-01.net.anydesk.com

seperti DNSLookup, mereka hanya memberikan satu alamat IP, tetapi alamat ini bervariasi. Saat menganalisis koneksi TCPView, kami mengembalikan catatan PTR dari alamat IP jenis tersebut relay-*.net.anydesk.com.

Secara teoritis: karena ping terkadang menuju ke host tidak dikenal yang tidak diblokir boot-01.net.anydesk.com kita dapat menemukan ip ini dan memblokirnya, jadikan implementasi ini skrip biasa di OS Linux, di sini Anda tidak perlu menginstal AnyDesk. Analisis menunjukkan bahwa IP ini sering kali "memotong"dengan yang ditemukan dari daftar kami. Mungkin hanya host inilah yang dihubungkan oleh program sebelum mulai "menyortir" IP yang diketahui. Saya mungkin nanti akan melengkapi artikel ini dengan bagian ke-2 dari pencarian host, meskipun saat ini program itu sendiri tidak menginstal di dalam jaringan luar gabungan pada umumnya.

Saya harap Anda tidak melihat sesuatu yang ilegal di atas, dan pembuat AnyDesk akan memperlakukan tindakan saya dengan cara yang sportif.

Sumber: www.habr.com

Tambah komentar