Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį

Kai vieną dieną viršininkas iškelia klausimą: „Kodėl kai kurie žmonės turi nuotolinę prieigą prie darbo kompiuterio, negavę papildomų leidimų naudotis?
Iškyla užduotis „uždaryti“ spragą.

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį
Yra daug programų, skirtų nuotoliniam valdymui tinkle: „Chrome“ nuotolinis darbalaukis, „AmmyAdmin“, „LiteManager“, „TeamViewer“, „Anyplace Control“ ir kt. Jei „Chrome“ nuotolinis darbalaukis turi oficialų vadovą, kaip kovoti su prieiga prie paslaugos, „TeamViewer“ turi laiko arba užklausų licencijavimo apribojimus. iš tinklo ir vartotojai vienaip ar kitaip „šviečia“ su administratoriais, tada daugelio mėgstamiausias asmeniniam naudojimui - „AnyDesk“ vis tiek reikalauja ypatingo dėmesio, ypač jei viršininkas pasakė „Ne!

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį
Jei žinote, kas yra blokuoti tinklo paketą pagal jo turinį ir esate juo patenkinti, tada visa kita medžiaga
neskirta tau.

Tiesą sakant, bandoma išeiti iš priešingos pusės Dabar naršo nurodoma, ką reikia leisti, kad programa veiktų; atitinkamai DNS įrašas buvo užblokuotas *.net.anydesk.com. Tačiau „AnyDesk“ nėra paprasta; jai nerūpi domeno vardo blokavimas.

Kažkada išsprendžiau „Anyplace Control“ blokavimo problemą, kuri pas mus atėjo su kažkokia abejotina programine įranga, ir ji buvo išspręsta užblokavus vos kelis IP (atsarginę antivirusinę kopiją padariau). „AnyDesk“ problema, kai rankiniu būdu surinkau daugiau nei tuziną IP adresų, užmušė mane pabėgti nuo įprasto rankų darbo.

Taip pat buvo nustatyta, kad „C:ProgramDataAnyDesk“ yra daug failų su nustatymais ir pan., o faile ad_svc.trace Renkami įvykiai apie ryšius ir gedimus.

1. Stebėjimas

Kaip jau minėta, *.anydesk.com blokavimas programos veikimui nedavė jokių rezultatų, buvo nuspręsta išanalizuoti programuoti elgesį stresinėse situacijose. TCPView iš Sysinternals jūsų rankose ir pirmyn!

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį

1.1. Matyti, kad „kabo“ keli mus dominantys procesai, o mus domina tik tas, kuris bendrauja su adresu iš išorės. Pasirinkti prievadai prie kurių jungiasi, iš to ką mačiau: 80, 443, 6568. 🙂 80 ir 443 blokuoti tikrai negalime.

1.2. Užblokavus adresą per maršrutizatorių, tyliai pasirenkamas kitas adresas.

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį

1.3. Konsolė yra mūsų VISKAS! Nustatome PID ir tada man šiek tiek pasisekė, kad paslauga įdiegė AnyDesk, todėl mūsų ieškomas PID buvo vienintelis.
1.4. Paslaugos serverio IP adresą nustatome iš proceso PID.

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį

2. Paruošimas

Kadangi IP adresų identifikavimo programa veikiausiai veiks tik mano asmeniniame kompiuteryje, patogumui ir tinginiui neturiu jokių apribojimų, todėl C#.

2.1. Visi reikalingi IP adreso nustatymo būdai jau žinomi, belieka jį įgyvendinti.

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

Panašiai randame paslaugą, kuri užmezgė ryšį, pateiksiu tik pagrindinę liniją

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

Kurio rezultatas bus:

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį
Iš eilutės, kaip ir ankstesniame žingsnyje, ištraukite 3 stulpelį ir pašalinkite viską po „:“. Dėl to turime norimą IP.

2.2. IP blokavimas sistemoje Windows. Jei „Linux“ turi „Blackhole“ ir „iptables“, IP adreso blokavimo vienoje eilutėje, nenaudojant ugniasienės, metodas „Windows“ pasirodė neįprastas,
bet kokie ten įrankiai buvo...

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

Pagrindinis parametras "jei 1" siųsti maršrutą į Loopback (galimas sąsajas galite rodyti paleisdami maršruto spausdinimą). IR SVARBU! Dabar reikia paleisti programą su administratoriaus teisėmis, nes norint pakeisti maršrutą reikia pakilti.

2.3. Identifikuotų IP adresų rodymas ir išsaugojimas yra nereikšminga užduotis ir nereikalauja paaiškinimo. Jei pagalvosite, galite apdoroti failą ad_svc.trace Pats „AnyDesk“, bet ne iš karto apie tai pagalvojau + galbūt tam yra apribojimų.

2.4. Keistas netolygus programos elgesys yra tas, kad „užduoti“ paslaugų procesą „Windows 10“ sistemoje ji automatiškai paleidžiama iš naujo, „Windows 8“ baigiasi, paliekant tik konsolės procesą ir neprisijungus, apskritai tai yra nelogiška ir tai yra netikslu.

Pašalinus procesą, kuris prisijungė prie serverio, galite priverstinai prisijungti prie kito adreso. Jis įgyvendinamas taip pat, kaip ir ankstesnės komandos, todėl tiesiog pateiksiu:

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

Be to, paleiskite programą AnyDesk.

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

2.5. AnyDesk būseną tikrinsime kartą per minutę (ar dažniau?), o jei jis prijungtas, t.y. ryšys NUSTATYTAS - užblokuokite šį IP ir vėl viskas iš naujo - palaukite kol prisijungs, blokuokite ir laukite.

3. Puolimas

Kodas buvo "eskizas" ir nuspręsta vizualizuoti procesą "+" nurodykite rastą ir užblokuotą IP adresą ir "."—pakartokite patikrinimą be sėkmingo kaimyninio ryšio iš AnyDesk.

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį

Projekto kodas

Kaip rezultatas…

Galimybės blokuoti programą nuotoliniam kompiuterio valdymui tinkle, naudojant AnyDesk pavyzdį
Programa veikė keliuose kompiuteriuose su skirtingomis Windows OS, AnyDesk 5 ir 6 versijomis. Buvo surinkta daugiau nei 500 iteracijų, apie 80 adresų. Už 2500 - 87 ir tt...

Laikui bėgant, užblokuotų IP skaičius pasiekė 100+.

Nuoroda į finalą tekstinis failas su adresais: laikas и два

Padaryta! IP adresų telkinys buvo įtrauktas į pagrindinio maršrutizatoriaus taisykles per scenarijų ir AnyDesk tiesiog negali sukurti išorinio ryšio.

Keistas dalykas, iš pirminių žurnalų aišku, kad adresas susijęs su informacijos perdavimu boot-01.net.anydesk.com. Žinoma, paprastai užblokavome visus *.net.anydesk.com prieglobus, bet tai nėra keista. Kiekvieną kartą naudojant įprastą ping iš skirtingų kompiuterių, šis domeno pavadinimas suteikia skirtingą IP. Tikrinama „Linux“ sistemoje:

host boot-01.net.anydesk.com

kaip DNSLookup, jie suteikia tik vieną IP adresą, tačiau šis adresas yra kintamas. Analizuojant TCPView ryšį, mums grąžinami tokio tipo IP adresų PTR įrašai relay-*.net.anydesk.com.

Teoriškai: kadangi ping kartais patenka į nežinomą atblokuotą pagrindinį kompiuterį boot-01.net.anydesk.com galime rasti šiuos IP ir juos blokuoti, padaryti šį diegimą įprastu scenarijumi Linux OS, čia nereikia diegti AnyDesk. Analizė parodė, kad šie IP dažnai "susikerta"su rastais iš mūsų sąrašo. Galbūt kaip tik prie šio pagrindinio kompiuterio prisijungia programa prieš pradėdama "rūšiuoti" žinomus IP. Tikriausiai vėliau straipsnį papildysiu 2-ąja pagrindinio kompiuterio paieškų dalimi, nors šiuo metu pati programa apskritai neįdiegiama išoriniame tinklo sujungime.

Tikiuosi, kad nepastebėjote nieko neteisėto, o AnyDesk kūrėjai elgsis su mano veiksmais sportiškai.

Šaltinis: www.habr.com

Добавить комментарий