Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk

NÀr chefen en vacker dag stÀller frÄgan: "Varför har vissa fjÀrrÄtkomst till arbetsdatorn utan att ha fÄtt sÀrskilt tillstÄnd?"
blir uppgiften att "stÀnga" den luckan.

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk
Det finns gott om applikationer för fjĂ€rrstyrning över nĂ€tet: Chrome Remote Desktop, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control med mera. Om "Chrome Remote Desktop" har en officiell manual för att hantera tillgĂ„ng till tjĂ€nsten, sĂ„ har TeamViewer licensbegrĂ€nsningar över tid eller för nĂ€tverksförfrĂ„gningar och anvĂ€ndare "tvingas" pĂ„ nĂ„got sĂ€tt "synas" för administratörer, sĂ„ krĂ€ver en favorit bland mĂ„nga för privat bruk – AnyDesk, sĂ€rskild uppmĂ€rksamhet, sĂ€rskilt om chefen sĂ€ger "Nej!".

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk
Om du vet vad blockering av nÀtverkspaket baserat pÄ deras innehÄll Àr och du Àr okej med det, sÄ Àr det resterande materialet
inte avsett för dig.

Genom att försöka gÄ frÄn motsatt hÄll, handlar det om webbplats vad som bör tillÄtas för att programmet ska fungera, dÀrmed blockerades DNS-posten *.net.anydesk.com. Men AnyDesk Àr inte sÄ lÀtt, blockering av domÀnnamnet pÄverkar inte det.

En gÄng hade jag löst uppgiften att blockera "Anyplace Control" som kom till oss med nÄgot tvivelaktigt program, och det löstes genom att blockera ett par IP-adresser (jag skyddade mig med antivirus). Utmaningen med AnyDesk, efter att jag manuellt hade samlat in mer Àn ett dussin IP-adresser, inspirerade att undvika rutinmÀssigt manuellt arbete.

Det upptÀcktes ocksÄ att det finns en rad filer med instÀllningar i "C:ProgramDataAnyDesk", och i filen ad_svc.trace samlas hÀndelser om anslutningar och misslyckanden.

1. Observera

Som redan nÀmnts gav blockeringen av *.anydesk.com inga resultat i programmets funktion, sÄ det beslutades att analysera programmets beteende i stressiga situationer. TCPView frÄn Sysinternals i handen och vi kör!

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk

1.1. Det syns att flera intressanta processer "hĂ€ngde", och endast den som kopplar till en extern adress intresserar oss. De portar som anvĂ€nds Ă€r bland annat 80, 443, 6568. 🙂 80 och 443 kan vi definitivt inte blockera.

1.2. Efter blockering av adressen via routern, vÀljs enkelt en annan adress.

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk

1.3. Konsolen Àr vÄr allt! Vi identifierar PID och hÀr hade jag lite tur, eftersom AnyDesk installerades som en tjÀnst, vilket gör den efterfrÄgade PID unik.
1.4. Vi identifierar serverns IP-adress baserat pÄ processens PID.

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk

2. Förberedelse

Eftersom programmet för att identifiera IP-adresser sannolikt bara kommer att fungera pÄ min dator, har jag inga begrÀnsningar nÀr det gÀller bekvÀmlighet och lathet, dÀrför C#.

2.1. Alla metoder för att identifiera den efterfrÄgade IP-adressen Àr redan kÀnda, det ÄterstÄr bara att implementera.

string pid1_; //vi tar reda pÄ PID för AnyDesk-tjÀnsten
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(','); //översÀtter svaret till en array
pid1_ = pid1[1].Replace(""", ""); //vi tar det andra elementet utan citattecken
}

PÄ liknande sÀtt hittar vi tjÀnsten som har skapat anslutningen, jag kommer bara att visa huvudkommandot.

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

Resultatet av detta blir:

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk
FrÄn raden extraherar vi pÄ liknande sÀtt som i föregÄende steg den tredje kolumnen och tar bort allt efter ":". Som resultat har vi vÄr efterfrÄgade IP.

2.2. Blockering av IP i Windows. Om det i Linux finns Blackhole och iptables, sÄ visade sig metoden för att blockera en IP-adress pÄ en rad, utan att anvÀnda en brandvÀgg, i Windows vara ovanlig.
Men vilka verktyg som fanns...

route add vÄr_hittade_IP_adress mask 255.255.255.255 10.113.113.113 if 1 -p

Nyckelparameter "if 1" skickar rutten till Loopback (För att visa tillgĂ€ngliga grĂ€nssnitt kan man köra route print). Och DET ÄR VIKTIGT! Nu krĂ€vs det att programmet körs med administratörsrĂ€ttigheter, eftersom Ă€ndring av rutten krĂ€ver högre rĂ€ttigheter.

2.3. Visning och sparande av identifierade IP-adresser Àr en trivial uppgift och krÀver ingen förklaring. Om man tÀnker efter kan man ocksÄ bearbeta filen ad_svc.trace för AnyDesk sjÀlv, men det kom jag inte att tÀnka pÄ direkt + det kan finnas begrÀnsningar för den.

2.4. Det konstiga ojÀmna beteendet hos programmet Àr att nÀr man "taskkill" processen för tjÀnsten i Windows 10, startar den om automatiskt, medan den i Windows 8 avslutas, vilket lÀmnar kvar endast konsolprocessen utan Äteranslutning, det Àr helt ologiskt och imprecist.

Att ta bort processen som har anslutit till servern gör att man kan "tvinga" en Äteranslutning till nÀsta adress. Genomförs pÄ samma sÀtt som tidigare kommandon, sÄ jag ger bara:

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

Dessutom startar vi programmet AnyDesk.

 //запусĐșĐ°Đ”ĐŒ ĐżŃ€ĐŸĐłŃ€Đ°ĐŒĐŒŃƒ ĐșĐŸŃ‚ĐŸŃ€Đ°Ń Ń€Đ°ŃĐżĐŸĐ»ĐŸĐ¶Đ”ĐœĐ° ĐżĐŸ путо 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 har anslutit sig, det vill sĂ€ga om anslutningen Ă€r ETABLERAD – blockera denna IP och börja om – vĂ€nta tills den ansluter, blockera och vĂ€nta igen.

3. Attack

Kod har "kastats" för att visualisera processen, sĂ„ det beslutades att "+" ange den hittade och blockerade IP:n och "." – upprepa kontrollen utan framgĂ„ngsrik anslutning frĂ„n AnyDesk.

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk

→ Projektkod

Som resultat...

Analys av möjligheten att blockera en applikation för fjÀrrstyrning av datorer via nÀtverket, med fokus pÄ AnyDesk
Programmet fungerade pĂ„ flera datorer med olika Windows OS, med versioner av AnyDesk 5 och 6. Efter 500 iterationer samlades cirka 80 adresser. Efter 2500 – 87 och sĂ„ vidare...

Med tiden nÄdde antalet blockerade IP:n över 100.

LÀnk till den slutliga textfilen med adresser: ett och tvÄ

Ärendet Ă€r avslutat! IP-adresspoolen har lagts till i reglerna för den primĂ€ra routern via skriptet och AnyDesk kan helt enkelt inte skapa en extern anslutning.

Det finns en konstig punkt, i de ursprungliga loggarna Àr det synligt att adressen boot-01.net.anydesk.com. Vi har naturligtvis blockerat alla vÀrdar *.net.anydesk.com med en allmÀn regel, men konstigheten ligger inte i detta. Varje gÄng vid en vanlig ping frÄn olika datorer ger detta domÀnnamn olika IP. Kontroll i Linux:

host boot-01.net.anydesk.com

som och DNSLookup ger endast en IP-adress, men denna adress Àr variabel. Vid analys av anslutningar TCPView returnerar oss PTR-poster för IP-adresser av typen relay-*.net.anydesk.com.

Teoretiskt: eftersom ping ibland gÄr till en obekant, oblockerad vÀrd boot-01.net.anydesk.com kan vi hitta dessa IP:n och blockera dem, detta kan göras med ett vanligt skript för Linux OS, hÀr behöver vi inte ens installera AnyDesk. Analysen visade att dessa IP ofta "överlappar" med dem som hittades frÄn vÄr lista. Kanske Àr det just den vÀrden som programmet ansluter till innan det börjar "brute-force" kÀnda IP-adresser. Jag kanske senare kompletterar artikeln med del tvÄ i sökandet efter vÀrdar, Àven om programmet just nu inte etablerar nÄgra externa anslutningar överhuvudtaget.

Jag hoppas att ni inte sÄg nÄgot olagligt i det ovanstÄende, och att skaparna av AnyDesk ser pÄ mina handlingar sportligt.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster