Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk

Nang isang araw ay itinaas ng boss ang tanong: "Bakit ang ilang mga tao ay may malayuang pag-access sa computer ng trabaho, nang hindi kumukuha ng karagdagang mga pahintulot para sa paggamit?"
Ang gawain ay lumitaw upang "isara" ang butas.

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk
Maraming application para sa remote control sa network: Remote desktop ng Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, atbp. Kung ang remote desktop ng Chrome ay may opisyal na manual para sa paglaban sa pag-access sa serbisyo, ang TeamViewer ay may mga paghihigpit sa paglilisensya sa oras o mga kahilingan mula sa network at mga gumagamit ay "gumiling ng kanilang mga ngipin" sa isang paraan o iba pang "lumiwanag" sa mga admin, kung gayon ang paborito ng marami para sa personal na paggamit - Ang AnyDesk ay nangangailangan pa rin ng espesyal na pansin, lalo na kung sinabi ng boss na "Hindi!"

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk
Kung alam mo kung ano ang pagharang sa isang network packet sa pamamagitan ng nilalaman nito at ikaw ay nasiyahan dito, kung gayon ang natitirang bahagi ng materyal
hindi sinadya para sa iyo.

Sinusubukang pumunta mula sa kabaligtaran, sa katunayan Online sinasabi nito kung ano ang dapat pahintulutan para gumana ang program; nang naaayon, na-block ang DNS record *.net.anydesk.com. Ngunit ang AnyDesk ay hindi simple; wala itong pakialam sa pagharang sa isang domain name.

Noong unang panahon, nalutas ko ang problema ng pagharang sa "Anyplace Control", na dumating sa amin na may ilang kahina-hinalang software, at nalutas ito sa pamamagitan ng pagharang ng ilang IP lamang (na-back up ko ang antivirus). Ang problema sa AnyDesk, pagkatapos kong manu-manong mangolekta ng higit sa isang dosenang mga IP address, kinulit ako lumayo sa karaniwang gawaing manwal.

Natuklasan din na sa "C:ProgramDataAnyDesk" mayroong isang bilang ng mga file na may mga setting, atbp., at sa file ad_svc.trace Kinokolekta ang mga kaganapan tungkol sa mga koneksyon at pagkabigo.

1. Pagmamasid

Tulad ng nabanggit na, ang pagharang sa *.anydesk.com ay hindi nagbigay ng anumang mga resulta sa pagpapatakbo ng programa, napagpasyahan na pag-aralan pag-uugali ng programa sa mga nakababahalang sitwasyon. TCPView mula sa Sysinternals sa iyong mga kamay at pumunta!

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk

1.1. Makikita na ang ilang mga proseso ng interes sa amin ay "nakabitin", at ang isa lamang na nakikipag-usap sa address mula sa labas ay interesado sa amin. Ang mga port kung saan ito kumokonekta ay pinili, mula sa nakita ko: 80, 443, 6568. πŸ™‚ Tiyak na hindi namin ma-block ang 80 at 443.

1.2. Matapos i-block ang address sa pamamagitan ng router, tahimik na napili ang isa pang address.

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk

1.3. Ang console ay ang aming LAHAT! Tinutukoy namin ang PID at pagkatapos ay medyo masuwerte ako na ang AnyDesk ay na-install ng serbisyo, kaya ang PID na hinahanap namin ay isa lamang.
1.4. Tinutukoy namin ang IP address ng server ng serbisyo mula sa proseso ng PID.

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk

2. Paghahanda

Dahil ang programa para sa pagtukoy ng mga IP address ay malamang na gagana lamang sa aking PC, wala akong mga paghihigpit sa kaginhawahan at katamaran, kaya ang C#.

2.1. Ang lahat ng mga pamamaraan para sa pagtukoy ng kinakailangang IP address ay kilala na, nananatili itong ipatupad.

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

Katulad nito, nakita namin ang serbisyo na nagtatag ng koneksyon, ibibigay ko lamang ang pangunahing linya

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

Ang magiging resulta nito ay:

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk
Mula sa row, katulad ng nakaraang hakbang, i-extract ang ika-3 column at alisin ang lahat pagkatapos ng ":". Bilang resulta, mayroon kaming ninanais na IP.

2.2. Pag-block ng IP sa Windows. Kung ang Linux ay may Blackhole at iptables, kung gayon ang paraan ng pagharang ng isang IP address sa isang linya, nang hindi gumagamit ng firewall, sa Windows ay naging hindi pangkaraniwan,
ngunit anong uri ng mga kagamitan ang naroon...

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

Key parameter "kung 1" ipadala ang ruta sa Loopback (Maaari mong ipakita ang mga magagamit na interface sa pamamagitan ng pagpapatakbo ng pag-print ng ruta). AT MAHALAGA! Ngayon ay kailangang ilunsad ang programa na may mga karapatan ng administrator, dahil ang pagpapalit ng ruta ay nangangailangan ng elevation.

2.3. Ang pagpapakita at pag-save ng mga natukoy na IP address ay isang maliit na gawain at hindi nangangailangan ng paliwanag. Kung iisipin mo ito, maaari mong iproseso ang file ad_svc.trace AnyDesk mismo, ngunit hindi ko naisip ito kaagad + marahil ay may limitasyon dito.

2.4. Ang kakaibang hindi pantay na pag-uugali ng programa ay kapag "taskkilling" ang proseso ng serbisyo sa Windows 10, awtomatiko itong nag-restart, sa Windows 8 ito ay nagtatapos, na iniiwan lamang ang proseso ng console at nang walang muling pagkonekta, sa pangkalahatan ito ay hindi makatwiran at ito ay hindi tumpak.

Ang pag-alis ng proseso na nakakonekta sa server ay nagbibigay-daan sa iyong "puwersa" ang muling pagkonekta sa susunod na address. Ito ay ipinatupad sa parehong paraan tulad ng mga nakaraang utos, kaya ibibigay ko lang ito:

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

Bilang karagdagan, ilunsad ang programang AnyDesk.

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

2.5. Susuriin namin ang katayuan ng AnyDesk isang beses sa isang minuto (o mas madalas?), at kung ito ay konektado, i.e. koneksyon ESTABLISHED - harangan ang IP na ito, at muli sa lahat - maghintay hanggang ito ay kumonekta, harangan at maghintay.

3. Pag-atake

Ang code ay "na-sketch" at napagpasyahan na mailarawan ang proseso "+" ipahiwatig ang natagpuan at naka-block na IP, at "."β€”ulitin ang tseke nang walang matagumpay na koneksyon sa kapitbahay mula sa AnyDesk.

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk

β†’ Code ng proyekto

Ang resulta…

Pagsusuri ng posibilidad ng pagharang ng isang application para sa remote na kontrol ng computer sa isang network, gamit ang halimbawa ng AnyDesk
Ang programa ay nagtrabaho sa ilang mga computer na may iba't ibang Windows OS, na may mga bersyon ng AnyDesk 5 at 6. Mahigit sa 500 mga pag-ulit, humigit-kumulang 80 mga address ang nakolekta. Para sa 2500 - 87 at iba pa...

Sa paglipas ng panahon, umabot sa 100+ ang bilang ng mga naka-block na IP.

Link sa final text file may mga address: oras ΠΈ Π΄Π²Π°

Tapos na! Ang pool ng mga IP address ay idinagdag sa mga patakaran ng pangunahing router sa pamamagitan ng script at ang AnyDesk ay hindi maaaring lumikha ng isang panlabas na koneksyon.

Mayroong isang kakaibang punto, mula sa mga paunang log ay malinaw na ang address ay kasangkot sa paglilipat ng impormasyon boot-01.net.anydesk.com. Siyempre, na-block namin ang lahat ng *.net.anydesk.com host bilang pangkalahatang tuntunin, ngunit hindi iyon ang kakaibang bagay. Sa bawat oras na may normal na ping mula sa iba't ibang mga computer, ang domain name na ito ay nagbibigay ng ibang IP. Pagsusuri sa Linux:

host boot-01.net.anydesk.com

tulad ng DNSLookup nagbibigay lamang sila ng isang IP address, ngunit ang address na ito ay variable. Kapag sinusuri ang isang koneksyon sa TCPView, ibinalik sa amin ang mga PTR na tala ng mga IP address ng uri relay-*.net.anydesk.com.

Theoretically: dahil minsan napupunta ang ping sa isang hindi kilalang naka-unblock na host boot-01.net.anydesk.com mahahanap natin ang mga ips na ito at i-block ang mga ito, gawin itong regular na script sa ilalim ng Linux OS, dito hindi na kailangang mag-install ng AnyDesk. Ang pagsusuri ay nagpakita na ang mga IP na ito ay madalas na "bumalandra"sa mga nahanap mula sa aming listahan. Marahil ay ang host na ito lamang kung saan kumokonekta ang program bago ito magsimulang "pag-uri-uriin" ang mga kilalang IP. Malamang na dagdagan ko sa ibang pagkakataon ang artikulo ng ika-2 bahagi ng mga paghahanap sa host, bagama't sa ngayon ang Ang program mismo ay hindi nag-i-install sa loob ng network outer join sa pangkalahatan.

Sana ay wala kang nakitang ilegal sa itaas, at ang mga creator ng AnyDesk ay ituturing ang aking mga aksyon sa paraang sportsman.

Pinagmulan: www.habr.com

Magdagdag ng komento