Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk

Når sjefen en dag reiser spørsmålet: "Hvorfor har noen mennesker ekstern tilgang til arbeidsdatamaskinen uten å få ytterligere tillatelser for bruk?"
Oppgaven oppstår å "lukke" smutthullet.

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk
Det er mange programmer for fjernkontroll over nettverket: Chrome eksternt skrivebord, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, osv. Hvis Chrome eksternt skrivebord har en offisiell manual for å bekjempe tilgang til tjenesten, har TeamViewer lisensieringsbegrensninger på tid eller forespørsler fra nettverket og brukere "skjærer tennene" på en eller annen måte "glans" med administratorene, så er favoritten til mange for personlig bruk - AnyDesk krever fortsatt spesiell oppmerksomhet, spesielt hvis sjefen sa "Nei!"

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk
Hvis du vet hva som blokkerer en nettverkspakke etter innholdet, og du er fornøyd med den, så er resten av materialet
ikke med vilje for deg.

Prøver å gå fra det motsatte, faktisk nettsted den sier hva som må tillates for at programmet skal fungere; følgelig ble DNS-posten blokkert *.net.anydesk.com. Men AnyDesk er ikke enkelt; det bryr seg ikke om å blokkere et domenenavn.

En gang i tiden løste jeg problemet med å blokkere "Anyplace Control", som kom til oss med noe tvilsom programvare, og det ble løst ved å blokkere bare noen få IP-er (jeg sikkerhetskopierte antiviruset). Problemet med AnyDesk, etter at jeg manuelt samlet mer enn et dusin IP-adresser, egget meg på komme vekk fra rutinemessig manuelt arbeid.

Det ble også oppdaget at i "C:ProgramDataAnyDesk" er det en rekke filer med innstillinger osv., og i filen ad_svc.trace Hendelser om tilkoblinger og feil samles inn.

1. Observasjon

Som allerede nevnt ga blokkering av *.anydesk.com ingen resultater i driften av programmet, det ble besluttet å analysere programmere atferd i stressende situasjoner. TCPView fra Sysinternals i dine hender og gå!

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk

1.1. Det kan sees at flere prosesser av interesse for oss "henger", og bare den som kommuniserer med adressen fra utsiden er av interesse for oss. Portene den kobles til er valgt ut fra det jeg så: 80, 443, 6568. 🙂 Vi kan definitivt ikke blokkere 80 og 443.

1.2. Etter å ha blokkert adressen gjennom ruteren, velges en annen adresse stille.

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk

1.3. Konsollen er vår ALT! Vi bestemmer PID-en og så var jeg litt heldig at AnyDesk ble installert av tjenesten, så PID-en vi lette etter var den eneste.
1.4. Vi bestemmer IP-adressen til tjenesteserveren fra prosess-PID.

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk

2. Forberedelse

Siden programmet for å identifisere IP-adresser sannsynligvis bare vil fungere på min PC, har jeg ingen begrensninger på bekvemmelighet og latskap, så C#.

2.1. Alle metoder for å identifisere den nødvendige IP-adressen er allerede kjent, det gjenstår å implementere.

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

På samme måte finner vi tjenesten som opprettet forbindelsen, jeg vil bare gi hovedlinjen

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

Resultatet av dette blir:

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk
Fra raden, på samme måte som i forrige trinn, trekk ut den tredje kolonnen og fjern alt etter ":". Som et resultat har vi ønsket IP.

2.2. IP-blokkering i Windows. Hvis Linux har Blackhole og iptables, viste metoden for å blokkere en IP-adresse på én linje, uten å bruke en brannmur, i Windows å være uvanlig,
men hva slags verktøy var det...

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

Nøkkelparameter "hvis 1" send ruten til Loopback (Du kan vise tilgjengelige grensesnitt ved å kjøre ruteutskrift). OG VIKTIG! Nå må programmet startes med administratorrettigheter, siden endring av ruten krever heving.

2.3. Å vise og lagre identifiserte IP-adresser er en triviell oppgave og krever ingen forklaring. Hvis du tenker deg om, kan du behandle filen ad_svc.trace AnyDesk selv, men jeg tenkte ikke på det med en gang + kanskje det er en begrensning på det.

2.4. Den merkelige ujevne oppførselen til programmet er at når du "oppgavegjør" tjenesteprosessen i Windows 10, starter den automatisk på nytt, i Windows 8 slutter den, og etterlater bare konsollprosessen og uten å koble til på nytt, generelt er det ulogisk og dette er unøyaktig.

Hvis du fjerner en prosess som har koblet til serveren, kan du "tvinge" gjentilkobling til neste adresse. Det er implementert på samme måte som de tidligere kommandoene, så jeg vil bare gi det:

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

I tillegg starter du AnyDesk-programmet.

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

2.5. Vi vil sjekke statusen til AnyDesk en gang i minuttet (eller oftere?), og om den er tilkoblet, dvs. forbindelse ETABLERT - blokker denne IP-en, og igjen om igjen - vent til den kobles til, blokker og vent.

3. Angrep

Koden ble "skissert" og det ble besluttet å visualisere prosessen "+" angi funnet og blokkert IP, og "."—Gjenta sjekken uten vellykket nabotilkobling fra AnyDesk.

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk

Prosjektkode

Som et resultat…

Analyse av muligheten for å blokkere en applikasjon for ekstern datamaskinkontroll over et nettverk, ved å bruke eksemplet med AnyDesk
Programmet fungerte på flere datamaskiner med forskjellige Windows OS, med versjoner av AnyDesk 5 og 6. Over 500 iterasjoner ble det samlet inn rundt 80 adresser. For 2500 - 87 og så videre...

Over tid nådde antallet blokkerte IP-er 100+.

Link til finalen tekstfil med adresser: tid и два

Det er gjort! Poolen av IP-adresser ble lagt til reglene til hovedruteren gjennom skriptet, og AnyDesk kan rett og slett ikke opprette en ekstern tilkobling.

Det er et merkelig poeng, fra de første loggene er det klart at adressen er involvert i overføringen av informasjon boot-01.net.anydesk.com. Selvfølgelig blokkerte vi alle *.net.anydesk.com-verter som en generell regel, men det er ikke det merkelige. Hver gang med en vanlig ping fra forskjellige datamaskiner, gir dette domenenavnet en annen IP. Sjekker på Linux:

host boot-01.net.anydesk.com

som DNSLookup gir de bare én IP-adresse, men denne adressen er variabel. Når vi analyserer en TCPView-tilkobling, får vi tilbake PTR-poster med IP-adresser av typen relé-*.net.anydesk.com.

Teoretisk: siden ping noen ganger går til en ukjent ublokkert vert boot-01.net.anydesk.com vi kan finne disse IP-ene og blokkere dem, gjøre denne implementeringen til et vanlig skript under Linux OS, her er det ikke nødvendig å installere AnyDesk. Analysen viste at disse IP-ene ofte "krysse"med de som er funnet fra listen vår. Kanskje det bare er denne verten som programmet kobles til før det begynner å "sortere ut" kjente IP-er. Jeg vil sannsynligvis senere supplere artikkelen med 2. del av vertssøk, selv om for øyeblikket selve programmet installeres ikke innenfor nettverkets ytre sammenføyning generelt.

Jeg håper du ikke så noe ulovlig i det ovenstående, og skaperne av AnyDesk vil behandle handlingene mine på en sportslig måte.

Kilde: www.habr.com

Legg til en kommentar