När chefen en dag ställer frågan: "Varför har vissa människor fjärråtkomst till arbetsdatorn utan att få ytterligare tillstånd att använda den?",
uppgiften uppstår att "täcka" kryphålet.

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 närvaron av åtkomst till tjänsten, TeamViewer har licensbegränsningar i tid eller förfrågningar från nätverket och användare som "bitar tänderna" på något sätt "visar upp" till alla som helst personligen, kräver fortfarande speciell uppmärksamhet från många administratörer. om chefen sa "Nej!"

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 för dig.
Försöker gå åt andra hållet, faktiskt det står att det ska tillåtas för programmet att fungera, därför blockerades DNS-posten *.net.anydesk.com. Men AnyDesk är inte enkelt, domännamnsblockering stör det inte.
En gång hade jag ett problem med att blockera "Anyplace Control" som kom till oss med en del tvivelaktig programvara och det löstes genom att bara blockera några få IP-adresser (jag säkerhetskopierade antiviruset). Uppgiften med AnyDesk, efter att jag manuellt samlat in mer än ett dussin IP-adresser, äggad på 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 programmets drift, det beslutades att analysera programmera beteende i stressiga situationer. TCPView från Sysinternals, plocka upp och gå!

1.1. Det är tydligt att flera processer av intresse för oss "hänger", och endast den som kommunicerar med en extern adress är av intresse för oss. Portarna som den ansluter till är valda, av vad jag såg är dessa: 80, 443, 6568. 🙂 Vi kan definitivt inte blockera 80 och 443.
1.2. Efter att ha blockerat en adress via en router kan en annan adress enkelt väljas.

1.3. Konsolen är vår ALLT! Vi bestämmer PID och här hade jag lite tur att AnyDesk installerades av en tjänst, och följaktligen är den nödvändiga PID den enda.
1.4. Vi bestämmer IP-adressen för tjänsteservern genom processens PID.

2. Förberedelse
Eftersom programmet för att upptäcka IP-adresser förmodligen bara kommer att fungera på min PC har jag inga begränsningar i bekvämlighet och lättja, så C#.
2.1. Alla metoder för att identifiera den önskade IP-adressen är redan kända; det återstår att genomföra.
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:
![]()
Från raden, på samma sätt som föregående steg, extraherar vi den tredje kolumnen och tar bort allt efter ":". Som ett resultat har vi vår önskade IP.
2.2. IP-blockering i Windows. Om i Linux Om du har Blackhole och iptables finns det en metod för att blockera IP-adresser på en rad, utan att använda en brandvägg, i Windows visade sig vara ovanligt,
men vilka verktyg de hade...
route add наш_найденный_IP_адрес mask 255.255.255.255 10.113.113.113 if 1 -pNyckelparameter "om 1" skicka rutten till Loopback (Du kan visa tillgängliga gränssnitt genom att köra ruttutskrift ). OCH VIKTIGT! Nu måste programmet köras med administratörsrättigheter, eftersom ändring av rutten kräver höjning av privilegier.
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 också bearbeta en fil ad_svc.trace AnyDesk själv, men jag tänkte inte på det direkt + det kanske finns en begränsning på det.
2.4. Programmets märkliga ojämna beteende är att när man "taskkillar" serviceprocessen i Windows 10 den startar om automatiskt, i Windows 8 slutar, vilket bara lämnar konsolprocessen och utan att återansluta, i allmänhet är det ologiskt och detta är felaktigt.
Genom att ta bort en process som är ansluten till servern kan du "tvinga" en återanslutning till nästa adress. Det är implementerat på samma sätt som de tidigare kommandona, så jag kommer bara att tillhandahålla:
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 allt 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 granne från AnyDesk.

→
Som ett resultat…

Programmet fungerade på flera datorer med olika Windows OS, med AnyDesk version 5 och 6. Efter 500 iterationer samlades cirka 80 adresser in. Efter 2500, 87, och så vidare...
Med tiden nådde antalet blockerade IP-adresser 100+.
Länk till finalen textfil med adresser: и
Det är gjort! IP-adresspoolen lades till i huvudrouterreglerna via ett skript och AnyDesk kan helt enkelt inte skapa en extern anslutning.
Det finns ett konstigt ögonblick, enligt de första loggarna är det tydligt att adressen är inblandad i överföringen av information boot-01.net.anydesk.comVi har blockerat alla *.net.anydesk.com-värdar som en generell regel, men det är inte det som är konstigt. Varje gång vi pingar det här domännamnet från olika datorer returnerar det en annan IP-adress. Incheckning Linux:
host boot-01.net.anydesk.com
som DNSLookup ger de bara en IP-adress, men denna adress är variabel. När vi analyserar TCPView-anslutningar får vi tillbaka PTR-poster av 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 IP-adresser och blockera dem. Detta kan implementeras med ett vanligt skript under operativsystemet. Linux, det finns inget behov av att installera AnyDesk här. Analysen visade att dessa IP-adresser ofta ärkorsas" med de som hittats från vår lista. Kanske är det just den värd som programmet ansluter till innan det börjar "sortera igenom" kända IP-adresser. Jag kommer förmodligen att lägga till en 2:a del av värdsökningar i artikeln senare, även om för tillfället inte själva programmet upprättar någon extern anslutning alls inom nätverket.
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
