Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet

Kui ühel kaunil päeval tõstatab ülem küsimuse: "Miks on mõnedel kaugjuurdepääs tööarvutile ilma täiendavate kasutuslubade saamiseta?"
siis tekib ülesanne, et "katta" auk.

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet
Kaugtöötamise rakendusi on küllaga: Chrome Remote Desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control jne. Kui "Chrome Remote Desktop"-il on olemas ametlik juhend teenuse juurdepääsu blokeerimiseks, siis TeamViewer'il on litsentsi suhtes ajapiirangud või võrgu päringud ning kasutajad "hammastega krigistades" ilmuvad haldurite ette, siis paljude lemmik — AnyDesk — vajab erilist tähelepanu, eriti kui ülem ütles "Pole lubatud!".

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet
Kui tead, mis on võrgu paketi sisu põhjal blokeerimine ja see sobib sulle, siis ülejäänud materjal
ei ole mõeldud sulle.

Püüdes tulla vastupidiselt, räägitakse veebilehel sellest, mis peaks olema programmi tööks lubatud, vastavalt on blokeeritud DNS-kirjed *.net.anydesk.com. Kuid AnyDesk ei ole lihtne, domeeninime blokaad ei takista teda.

Kunagi lahendasin ülesande "Anyplace Control" blokeerimiseks, mis tuli meil koos kahtlase tarkvaraga, ja see lahendati blokeerides vaid mõned IP-aadressid (kindlustasin end viirusevastase tarkvaraga). Ülesanne AnyDeski puhul, pärast seda, kui kogusin käsitsi rohkem kui tosin IP-aadressi, pani mind innustama vabanema rutiinsest käsitsi tööst.

Samuti leiti, et "C:ProgramDataAnyDesk" kaustas on rida seadistusfailide jms, ja faili ad_svc.trace kogutakse ühenduste ja ebaõnnestumiste kohta sündmusi.

1. Tähelepanek

Nagu juba ütlesin, ei andnud *.anydesk.com blokeerimine programmi töös mingeid tulemusi, seega otsustati analüüsida programmi käitumist stressiolukordades.. TCPView Sysinternals'ilt kätte ja edasi!

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet

1.1. Näha on, et "ripub" mitu huvitavat protsessi, ja ainult see, mis suhtub välisest aadressist, on meile huvitav. Sadamad, millega ühendatakse, on järgnevad: 80, 443, 6568. 🙂 80 ja 443 ei saa kindlasti blokeerida.

1.2. Pärast aadressi blokeerimist ruuteri kaudu valitakse rahulikult teine aadress.

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet

1.3. Meie kõik! Määrame PID ja mul vedas, kuna AnyDesk oli installitud teenusena, seega on otsitav PID ainus.
1.4. Määrame serveriteenuse IP-aadressi protsessi PID järgi.

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet

2. Ettevalmistus

Kuna IP-aadresside määramise programm töötab tõenäoliselt ainult minu arvutis, ei ole mul mugavuse ja laiskuse osas mingeid piiranguid, seega C#.

2.1. Kõik meetodid otsitava IP-aadressi määramiseks on juba teada, jääb vaid ellu viia.

string pid1_; // saame AnyDeski teenuse PID
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(','); // tõlgi vastus massiivi
 pid1_ = pid1[1].Replace(""", ""); // võtame 2. elemendi ilma jutumärkideta
}

Samasugune meetod teenuse leidmiseks, mis on ühenduse loonud, esitan vaid peamise rea.

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

Mille tulemuseks on:

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet
Saame rea põhjal samamoodi nagu eelnevas sammus, tõmmates 3. veeru välja ja eemaldades kõik, mis on pärast ":". Tulemuseks on meie otsitav IP.

2.2. IP aadressi blokeerimine Windowsis. Kui Linuxis on olemas Blackhole ja iptables, siis IP aadressi blokeerimise meetod ühe reale, ilma tulemüürita, osutus Windowsis harjumatuks.
Aga millised tööriistad siis olid…

route add meie_leitud_IP_aadress mask 255.255.255.255 10.113.113.113 if 1 -p

Oluline parameeter "if 1" suunab marsruudi Loopback'ile (saate saada saadaval olevad liidesed, käivitades route print). Ja OLULINE! Nüüd tuleb programmi käivitada administratori õigustega, sest marsruudi muutmine nõuab õiguste tõstmist.

2.3. Leitud IP aadresside kuvamine ja salvestamine on triviaalne ülesanne, selgitust ei vaja. Kui mõelda, siis saab töödelda ka faili ad_svc.trace ise AnyDesk'i kohta, aga ma ei mõelnud sellele kohe + võib-olla sellele kehtivad piirangud.

2.4. Programmi kummaline erinev käitumine seisneb selles, et pärast teenuse protsessi "taskkill" Windows 10-s ta taaskäivitub automaatselt, Windows 8 lõpetab, jättes ainult konsooli protsessi ja ilma ümberühendamiseta, see on üldiselt loogiline ja ebatäpne.

Serveriga ühendatud protsessi eemaldamine võimaldab „sunniviisilist” ümberühendamist järgmisele aadressile. Rakendatakse analooge eelnevatele käskudele, seega toon välja ainult:

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

Käivitame lisaks programmi AnyDesk.

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

2.5. Kontrollime AnyDeski seisundit kord minutis (või tihedamini?), ja kui see on ühendatud, st ühendus on ESTABLISHED — blokeerime selle IP ja alustame uuesti — ootame, kuni see ühendub, blokeerime ja ootame.

3. Rünnak

Kood „visati kokku”, et visualiseerida protsessi, otsustati "+" näidata leitud ja blokeeritud IP-d ning "." — kontrollimise kordamine ilma AnyDeski edukate ühendusteta.

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet

Projekti kood

Tulemus on…

Kaugtöötamise rakenduse blokeerimise võimaluste analüüs, kasutades AnyDeski näidet
Programm töötas mitmel arvutil erinevate Windowsi operatsioonisüsteemidega, AnyDeski versioonidega 5 ja 6. 500 iteratsiooni jooksul koguti umbes 80 aadressi. 2500 puhul — 87 ja nii edasi…

Ajaga kasvas blokeeritavate IP-de arv üle 100.

Viide lõplikule tekstifailile aadressidega: kord ja kaks

Töö on tehtud! IP aadresside hulk skripti kaudu on lisatud põhiviidikute reeglitesse ja AnyDesk ei suuda lihtsalt luua väliseid ühendusi.

On tähelepanek, et esialgsete logide kohaselt osaleb teabe edastamises aadress boot-01.net.anydesk.com. Loomulikult oleme blokeerinud kõik hostid *.net.anydesk.com üldise reegli alusel, kuid kummaline pole see. Iga kord, kui teeme tavapärast ping-katsed erinevatelt arvutilt, annab see domeeninimi erineva IP-aadressi. kontrollimine Linuxis:

host boot-01.net.anydesk.com

nagu ka DNSLookup annab ainult ühe IP-aadressi, kuid see aadress on varieeruv. TCPView ühenduste analüüsimisel tagastavad meile PTR-kirjed IP-aadresside tüüpidest relay-*.net.anydesk.com.

Teoreetiliselt: kuna ping mõnikord läheb läbi tundmatu, blokeerimata hosti boot-01.net.anydesk.com saame need IP-d leida ja blokeerida, see elluviimine teha tavalise skriptina Linuxi operatsioonisüsteemis, siin pole vaja installida AnyDeski. Analüüs näitas, et need IP-d sageli "ristsadavad" meie nimekirjast leitud IP-aadressidega. Võib-olla on see see host, millega programm ühendub enne, kui ta hakkab „pereliitma“ tuttavaid IP-aadresse. Tõenäoliselt täiendaksin hiljem artiklit teise osaga hostide otsingutest, kuigi praegu ei loo programm üldse väliseid ühendusi.

Loodan, et te ei näinud ühtegi ebaseaduslikku tegevust eespoolt, ja et AnyDeski loojad vaatavad minu tegevusele sportlikult.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster