Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk

När chefen en dag ställer frågan: "Varför har vissa människor fjärråtkomst till arbetsdatorn utan att få ytterligare behörigheter för användning?"
Uppgiften uppstår att "täppa" kryphålet.

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk
Det finns gott om applikationer för fjärrkontroll över nätverket: Chrome remote desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, etc. Om Chrome remote desktop har en officiell manual för att bekämpa åtkomst till tjänsten, har TeamViewer licensbegränsningar i tid eller förfrågningar från nätverket och användare som "gnisslar tänder" på något sätt "glänser" mot administratörerna, då är mångas favorit för personligt bruk - AnyDesk kräver fortfarande särskild uppmärksamhet, särskilt om chefen sa "Nej!"

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk
Om du vet vad som blockerar ett nätverkspaket genom dess innehåll och du är nöjd med det, då resten av materialet
inte avsett Till dig.

Försöker gå från motsatsen, faktiskt Online det står vad som måste tillåtas för att programmet ska fungera, därför blockerades DNS-posten *.net.anydesk.com. Men AnyDesk är inte enkelt; det bryr sig inte om att blockera ett domännamn.

En gång i tiden löste jag problemet med att blockera "Anyplace Control", som kom till oss med en del tvivelaktig programvara, och det löstes genom att bara blockera några IP-adresser (jag säkerhetskopierade antiviruset). Problemet med AnyDesk, efter att jag manuellt samlade in mer än ett dussin IP-adresser, eggade mig komma bort från rutinmässigt manuellt arbete.

Det upptäcktes också att det i "C:ProgramDataAnyDesk" finns ett antal filer med inställningar etc. och i filen ad_svc.trace Händelser om anslutningar och fel samlas in.

1. Observation

Som redan nämnts gav blockering av *.anydesk.com inga resultat i driften av programmet, det beslutades att analysera programmera beteende i stressiga situationer. TCPView från Sysinternals i dina händer och kör!

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk

1.1. Det kan ses att flera processer av intresse för oss "hänger", och endast den som kommunicerar med adressen utifrån är av intresse för oss. Portarna som den ansluter till är valda, från vad jag såg: 80, 443, 6568. 🙂 Vi kan definitivt inte blockera 80 och 443.

1.2. Efter att ha blockerat adressen via routern väljs en annan adress tyst.

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk

1.3. Konsolen är vår ALLT! Vi bestämmer PID och då hade jag lite tur att AnyDesk installerades av tjänsten, så PID vi letade efter var den enda.
1.4. Vi bestämmer IP-adressen för tjänsteservern från process-PID.

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk

2. Förberedelse

Eftersom programmet för att identifiera IP-adresser förmodligen bara fungerar på min PC, har jag inga begränsningar för bekvämlighet och lättja, så C#.

2.1. Alla metoder för att identifiera den erforderliga IP-adressen är redan kända, det återstår att implementera.

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å samma sätt hittar vi tjänsten som upprättade anslutningen, jag kommer bara att ge huvudlinjen

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

Resultatet av det blir:

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk
Från raden, på samma sätt som föregående steg, extrahera den tredje kolumnen och ta bort allt efter ":". Som ett resultat har vi vår önskade IP.

2.2. IP-blockering i Windows. Om Linux har Blackhole och iptables, visade sig metoden att blockera en IP-adress på en rad, utan att använda en brandvägg, i Windows vara ovanlig,
men vad fanns det för verktyg...

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

Nyckelparameter "om 1" skicka rutten till Loopback (Du kan visa tillgängliga gränssnitt genom att köra ruttutskrift). OCH VIKTIGT! Nu måste programmet startas med administratörsrättigheter, eftersom ändring av rutten kräver höjd.

2.3. Att visa och spara identifierade IP-adresser är en trivial uppgift och kräver ingen förklaring. Om du tänker efter kan du bearbeta filen ad_svc.trace AnyDesk själv, men jag tänkte inte på det direkt + det kanske finns en begränsning på det.

2.4. Det märkliga ojämna beteendet hos programmet är att när du "upparbetar" serviceprocessen i Windows 10, startar den om automatiskt, i Windows 8 slutar den, lämnar bara konsolprocessen och utan att återansluta, i allmänhet är det ologiskt och detta är felaktigt.

Om du tar bort en process som har anslutit till servern kan du "tvinga" återanslutning till nästa adress. Det är implementerat på samma sätt som de tidigare kommandona, så jag ger det bara:

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

Starta dessutom AnyDesk-programmet.

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

2.5. Vi kommer att kontrollera statusen för AnyDesk en gång i minuten (eller oftare?), och om den är ansluten, d.v.s. anslutning ETABLISTERAD - blockera denna IP, och igen om igen - vänta tills den ansluter, blockera och vänta.

3. Attack

Koden "skissades" och det beslutades att visualisera processen "+" indikerar den hittade och blockerade IP-adressen, och "."—upprepa kontrollen utan lyckad grannanslutning från AnyDesk.

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk

Projektkod

Som ett resultat…

Analys av möjligheten att blockera en applikation för fjärrstyrning av datorer över ett nätverk, med exemplet AnyDesk
Programmet fungerade på flera datorer med olika Windows-operativsystem, med versioner av AnyDesk 5 och 6. Över 500 iterationer samlades in cirka 80 adresser. För 2500 - 87 och så vidare...

Med tiden nådde antalet blockerade IP-adresser 100+.

Länk till finalen textfil med adresser: tid и два

Det är klart! Poolen av IP-adresser lades till reglerna för huvudroutern genom skriptet och AnyDesk kan helt enkelt inte skapa en extern anslutning.

Det finns en konstig punkt, från de första loggarna är det tydligt att adressen är inblandad i överföringen av information boot-01.net.anydesk.com. Naturligtvis blockerade vi alla *.net.anydesk.com-värdar som en allmän regel, men det är inte det konstiga. Varje gång med en normal ping från olika datorer ger detta domännamn en annan IP. Kollar på Linux:

host boot-01.net.anydesk.com

som DNSLookup ger de bara en IP-adress, men denna adress är variabel. När vi analyserar en TCPView-anslutning får vi tillbaka PTR-poster med IP-adresser av denna typ relä-*.net.anydesk.com.

Teoretiskt: eftersom ping ibland går till en okänd oblockerad värd boot-01.net.anydesk.com vi kan hitta dessa ips och blockera dem, göra denna implementering till ett vanligt skript under Linux OS, här finns det ingen anledning att installera AnyDesk. Analysen visade att dessa IP:er ofta "korsas"med de som hittats från vår lista. Kanske är det bara denna värd som programmet ansluter till innan det börjar "sortera ut" kända IP-adresser. Jag kommer förmodligen senare att komplettera artikeln med den andra delen av värdsökningar, även om för tillfället själva programmet installeras inte i nätverkets yttre anslutning i allmänhet.

Jag hoppas att du inte såg något olagligt i ovanstående, och skaparna av AnyDesk kommer att behandla mina handlingar på ett sportsligt sätt.

Källa: will.com

Lägg en kommentar