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.
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!".
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
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!
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.
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.
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:
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.
β
Hasil dariβ¦
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:
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