Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk

Όταν μια μέρα το αφεντικό θέτει το ερώτημα: "Γιατί μερικοί άνθρωποι έχουν απομακρυσμένη πρόσβαση σε έναν υπολογιστή εργασίας χωρίς να έχουν λάβει πρόσθετες άδειες χρήσης;",
υπάρχει ένα καθήκον να «καλύψει» ένα κενό.

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk
Υπάρχουν πολλές εφαρμογές για απομακρυσμένο έλεγχο μέσω του δικτύου: απομακρυσμένη επιφάνεια εργασίας Chrome, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, κ.λπ. Εάν η απομακρυσμένη επιφάνεια εργασίας Chrome διαθέτει επίσημο εγχειρίδιο για την καταπολέμηση της πρόσβασης στην υπηρεσία, το TeamViewer έχει περιορισμούς άδειας χρόνου ή αιτημάτων από το δίκτυο και οι χρήστες που «σφίγγουν τα δόντια τους» κάπως «λάμπουν» με τους διαχειριστές, τότε το αγαπημένο πολλών για προσωπική χρήση - το AnyDesk εξακολουθεί να απαιτεί ιδιαίτερη προσοχή, ειδικά αν το αφεντικό είπε «Όχι!».

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk
Εάν γνωρίζετε τι είναι ο αποκλεισμός ενός πακέτου δικτύου από το περιεχόμενό του και σας ταιριάζει, τότε το υπόλοιπο υλικό
δεν ήταν σκόπιμο Για σενα.

Προσπαθώντας να πάμε από το αντίθετο, στην πραγματικότητα Σε απευθείας σύνδεση λέει τι πρέπει να επιτρέπεται για να λειτουργήσει το πρόγραμμα, αντίστοιχα, μπλοκαρίστηκε η εγγραφή DNS *.net.anydesk.com. Αλλά το AnyDesk δεν είναι απλό, δεν τον ενδιαφέρει να μπλοκάρει ένα όνομα τομέα.

Μόλις έλυσα το πρόβλημα του αποκλεισμού του "Anyplace Control" που μας ήρθε με κάποιο αμφίβολο λογισμικό, και λύθηκε μπλοκάροντας μόνο μερικές IP (ασφάλισα το antivirus). Το πρόβλημα με το AnyDesk, αφού συγκέντρωσα με μη αυτόματο τρόπο περισσότερες από δώδεκα διευθύνσεις IP, προκάλεσε ξεφύγετε από τη συνηθισμένη χειρωνακτική εργασία.

Διαπιστώθηκε επίσης ότι στο "C: ProgramDataAnyDesk" υπάρχει ένας αριθμός αρχείων με ρυθμίσεις κ.λπ., και στο αρχείο ad_svc.trace συλλέγονται συμβάντα σχετικά με συνδέσεις και αποτυχίες.

1. Παρατήρηση

Όπως αναφέρθηκε ήδη, ο αποκλεισμός του *.anydesk.com δεν έδωσε αποτελέσματα στο πρόγραμμα, αποφασίστηκε να αναλυθεί πρόγραμμα συμπεριφοράς σε στρεσογόνες καταστάσεις. TCPView από το Sysinternals στο χέρι και πηγαίνετε!

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk

1.1. Μπορεί να φανεί ότι αρκετές διαδικασίες που μας ενδιαφέρουν «κρέμονται» και μόνο αυτή που επικοινωνεί με τη διεύθυνση από έξω μας ενδιαφέρει. Οι θύρες στις οποίες συνδέεται μεταφέρονται, από ότι είδα: 80, 443, 6568. 🙂 80 και 443 σίγουρα δεν μπορούμε να αποκλείσουμε.

1.2. Μετά τον αποκλεισμό της διεύθυνσης μέσω του δρομολογητή, επιλέγεται αθόρυβα μια άλλη διεύθυνση.

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk

1.3. Η κονσόλα μας είναι ΤΑ ΠΑΝΤΑ! Καθορίζουμε το PID και μετά στάθηκα λίγο τυχερός που εγκαταστάθηκε το AnyDesk από την υπηρεσία, αντίστοιχα, το PID που έψαχνα είναι το μόνο.
1.4. Καθορίζουμε τη διεύθυνση IP του διακομιστή υπηρεσιών από το PID της διαδικασίας.

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk

2. Προετοιμασία

Δεδομένου ότι το πρόγραμμα για την ανακάλυψη διευθύνσεων IP θα λειτουργεί πιθανώς μόνο στον υπολογιστή μου, δεν έχω περιορισμούς στην ευκολία και την τεμπελιά, οπότε C#.

2.1. Όλες οι μέθοδοι για τον προσδιορισμό της επιθυμητής διεύθυνσης IP είναι ήδη γνωστές, μένει να εφαρμοστεί.

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.StartInfo.Arguments = "/c " netstat  -n -o | findstr /I " + pid1_ + " | findstr "ESTABLISHED""";

Το αποτέλεσμα της οποίας θα είναι:

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk
Από τη γραμμή, όπως και στο προηγούμενο βήμα, εξάγουμε την 3η στήλη και αφαιρούμε τα πάντα μετά το ":". Ως αποτέλεσμα, έχουμε την επιθυμητή IP μας.

2.2. Αποκλεισμός IP στα Windows. Εάν το Linux έχει Blackhole και iptables, τότε η μέθοδος αποκλεισμού μιας διεύθυνσης IP σε μία γραμμή, χωρίς τη χρήση τείχους προστασίας, αποδείχθηκε ασυνήθιστη στα Windows,
Αλλά τι εργαλεία ήταν...

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

Βασική παράμετρος "αν 1" στείλτε τη διαδρομή στο Loopback (Μπορείτε να εμφανίσετε τις διαθέσιμες διεπαφές εκτελώντας εκτύπωση διαδρομής). Και ΣΗΜΑΝΤΙΚΟ! Τώρα το πρόγραμμα πρέπει να εκτελεστεί με δικαιώματα διαχειριστήγιατί η αλλαγή της διαδρομής απαιτεί υψόμετρο.

2.3. Η εμφάνιση και η αποθήκευση των αναγνωρισμένων διευθύνσεων IP είναι μια ασήμαντη εργασία και δεν απαιτεί εξήγηση. Εάν το σκεφτείτε, μπορείτε να επεξεργαστείτε το αρχείο ad_svc.trace Το ίδιο το AnyDesk, αλλά δεν το σκέφτηκα αμέσως + ίσως υπάρχει περιορισμός σε αυτό.

2.4. Η περίεργη άνιση συμπεριφορά του προγράμματος είναι ότι όταν η διαδικασία σέρβις «taskkilled» στα Windows 10, επανεκκινείται αυτόματα, στα Windows 8 τελειώνει, αφήνοντας μόνο τη διαδικασία της κονσόλας και χωρίς επανασύνδεση, γενικά, είναι παράλογη και ανακριβής.

Η διαγραφή μιας διαδικασίας που έχει συνδεθεί στον διακομιστή σάς επιτρέπει να "αναγκάσετε" μια επανασύνδεση στην επόμενη διεύθυνση. Εφαρμόζεται παρόμοια με τις προηγούμενες εντολές, οπότε δίνω μόνο:

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

Επιπλέον, ξεκινήστε το πρόγραμμα AnyDesk.

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

2.5. Θα ελέγχουμε την κατάσταση του AnyDesk μία φορά το λεπτό (ή πιο συχνά;), και αν είναι συνδεδεμένο, π.χ. Η σύνδεση ΕΓΚΑΤΑΣΤΑΘΗΚΕ - αποκλείστε αυτήν την IP και ξανά από την αρχή - περιμένετε μέχρι να συνδεθεί, αποκλείστε και περιμένετε.

3. Επίθεση

Ο κώδικας "συντάχθηκε", αποφασίστηκε να οπτικοποιηθεί η διαδικασία "+" προσδιορίστε την ευρεθείσα και αποκλεισμένη διεύθυνση IP και "." - επαναλαμβανόμενος έλεγχος χωρίς επιτυχή σύνδεση από το AnyDesk.

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk

Κωδικός Έργου

Σαν άποτέλεσμα…

Ανάλυση της δυνατότητας αποκλεισμού μιας εφαρμογής για απομακρυσμένο έλεγχο υπολογιστή μέσω δικτύου, χρησιμοποιώντας το παράδειγμα του AnyDesk
Το πρόγραμμα δούλευε σε πολλούς υπολογιστές με διαφορετικό λειτουργικό σύστημα Windows, με AnyDesk εκδόσεις 5 και 6. Συλλέχθηκαν περίπου 500 διευθύνσεις σε 80 επαναλήψεις. Για 2500 - 87 και ούτω καθεξής ...

Με την πάροδο του χρόνου, ο αριθμός των αποκλεισμένων IP έφτασε τα 100+.

Σύνδεσμος για τον τελικό αρχείο κειμένου με διευθύνσεις: ώρα и два

Εχει γίνει! Μια ομάδα διευθύνσεων IP προστίθεται στους κανόνες του κύριου δρομολογητή μέσω ενός σεναρίου και το AnyDesk απλά δεν μπορεί να δημιουργήσει μια εξωτερική σύνδεση.

Υπάρχει μια περίεργη στιγμή, σύμφωνα με τα αρχικά αρχεία καταγραφής, είναι ξεκάθαρο ότι η διεύθυνση εμπλέκεται στη μεταφορά πληροφοριών boot-01.net.anydesk.com. Έχουμε φυσικά αποκλείσει όλους τους κεντρικούς υπολογιστές *.net.anydesk.com κατά γενικό κανόνα, αλλά αυτό δεν είναι το παράξενο. Κάθε φορά που ένα κανονικό ping από διαφορετικούς υπολογιστές, αυτό το όνομα τομέα δίνει διαφορετική IP. Έλεγχος στο Linux:

host boot-01.net.anydesk.com

όπως το DNSLookup, δίνουν μόνο μία διεύθυνση IP, αλλά αυτή η διεύθυνση είναι μεταβλητή. Όταν αναλύουμε μια σύνδεση TCPView, λαμβάνουμε πίσω εγγραφές PTR διευθύνσεων IP όπως ρελέ-*.net.anydesk.com.

Θεωρητικά: αφού το ping μερικές φορές πηγαίνει σε έναν άγνωστο ξεμπλοκαρισμένο κεντρικό υπολογιστή boot-01.net.anydesk.com μπορούμε να βρούμε αυτές τις ip και να αποκλείσουμε, να κάνουμε αυτήν την υλοποίηση ένα κανονικό σενάριο στο Linux OS, εδώ δεν χρειάζεται να εγκαταστήσετε το AnyDesk. Η ανάλυση έδειξε ότι αυτές οι IP είναι συχνά "διατέμνω" με αυτά που βρέθηκαν από τη λίστα μας. Ίσως αυτός είναι μόνο αυτός ο κεντρικός υπολογιστής, στον οποίο συνδέεται το πρόγραμμα πριν αρχίσει να "τακτοποιεί" γνωστές IP. Μάλλον αργότερα θα συμπληρώσω το άρθρο με το 2ο μέρος των αναζητήσεων κεντρικού υπολογιστή, αν και αυτή τη στιγμή το ίδιο το πρόγραμμα δεν εγκαθιστά γενικά την εξωτερική σύνδεση.

Ελπίζω να μην είδατε κάτι παράνομο στα παραπάνω και οι δημιουργοί του AnyDesk θα αντιμετωπίσουν τις ενέργειές μου με σπορ τρόπο.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο