Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk

As de baas op in dei de fraach stelt: "Wêrom hawwe guon minsken tagong op ôfstân ta in wurkkompjûter sûnder ekstra tagongsrjochten te krijen foar gebrûk?",
d'r is in taak om in gat te "dekken".

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk
D'r binne genôch applikaasjes foar remote control oer it netwurk: Chrome remote buroblêd, AmmyAdmin, LiteManager, TeamViewer, Anyplace Control, ensfh As Chrome remote buroblêd hat in offisjele hantlieding foar it bestriden fan tagong ta de tsjinst, TeamViewer hat lisinsje beheiningen op tiid of fersiken fan it netwurk en brûkers "gritting harren tosken" ien of oare manier "shine" mei de admins, dan de favoryt fan in protte foar persoanlik gebrûk - AnyDesk noch fereasket spesjale oandacht, benammen as de baas sei "Nee!".

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk
As jo ​​​​witte wat blokkearjen fan in netwurkpakket is troch de ynhâld en it by jo past, dan is de rest fan it materiaal
net bedoeld foar dy.

Besykje te gean fan it tsjinoerstelde, yn feite side it seit wat moat wurde tastien foar it programma om te wurkjen, respektivelik, it DNS-record waard blokkearre *.net.anydesk.com. Mar AnyDesk is net ienfâldich, it makket it net út om in domeinnamme te blokkearjen.

Ienris haw ik it probleem oplost fan it blokkearjen fan "Anyplace Control" dy't nei ús kaam mei wat dubieuze software, en it waard oplost troch mar in pear IP's te blokkearjen (ik befeilige it antivirus). It probleem mei AnyDesk, nei't ik mear as in tsiental IP-adressen mei de hân sammele, provosearre gean fuort fan routine hânwurk.

It waard ek fûn dat yn "C: ProgramDataAnyDesk" in oantal bestannen binne mei ynstellings, ensfh., En yn 'e triem ad_svc.trace eveneminten oer ferbinings en mislearrings wurde sammele.

1. Observaasje

Lykas al neamd, it blokkearjen fan *.anydesk.com joech gjin resultaten yn it programma, it waard besletten om te analysearjen programma gedrach yn stressfolle situaasjes. TCPView fan Sysinternals yn 'e hân en gean!

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk

1.1. It kin sjoen wurde dat ferskate prosessen fan belang foar ús "hingje", en allinich dejinge dy't kommunisearret mei it adres fan bûten is fan belang foar ús. De havens dêr't it oanslút wurdt ferpleatst, fan wat ik seach it: 80, 443, 6568. 🙂 80 en 443 kinne wy ​​perfoarst net blokkearje.

1.2. Nei it blokkearjen fan it adres fia de router, wurdt in oar adres rêstich selektearre.

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk

1.3. Us konsole is ALLES! Wy bepale de PID en doe krige ik in bytsje gelok dat AnyDesk waard ynstalleare troch de tsjinst, respektivelik, de PID dy't ik socht is de ienige.
1.4. Wy bepale it IP-adres fan 'e tsjinsttsjinner troch de PID fan it proses.

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk

2. Tarieding

Sûnt it programma foar it ûntdekken fan IP-adressen sil wierskynlik allinich wurkje op myn PC, haw ik gjin beheiningen op gemak en loaiens, dus C #.

2.1. Alle metoaden foar it identifisearjen fan it winske IP-adres binne al bekend, it bliuwt te ymplementearjen.

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

Op deselde manier fine wy ​​de tsjinst dy't de ferbining fêstige, ik sil allinich de haadline jaan

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

It resultaat dêrfan sil wêze:

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk
Fan 'e rigel, lykas de foarige stap, ekstrahearje wy de 3e kolom, en ferwiderje alles nei de ":". As gefolch hawwe wy ús winske IP.

2.2. IP-blokkering yn Windows. As Linux Blackhole en iptables hat, dan blykte de metoade om in IP-adres yn ien rigel te blokkearjen, sûnder in firewall te brûken, ûngewoan yn Windows,
Mar hokker ark wiene ...

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

Key parameter "as 1" stjoer de rûte nei Loopback (Jo kinne de beskikbere ynterfaces werjaan troch it útfieren fan rûteprint ). En WICHTICH! No moat it programma útfierd wurde mei administrator rjochtenwant it feroarjen fan de rûte fereasket hichte.

2.3. It werjaan en bewarjen fan de identifisearre IP-adressen is in triviale taak en fereasket gjin útlis. As jo ​​der oer tinke, kinne jo it bestân ferwurkje ad_svc.trace AnyDesk sels, mar ik tocht der net daliks oer + miskien is d'r in beheining op.

2.4. It frjemde ûngelikense gedrach fan it programma is dat as it tsjinstproses "taskkilled" is yn Windows 10, it automatysk opnij begjint, yn Windows 8 einiget it, allinich it konsoleproses oerlitte en sûnder opnij te ferbinen, yn 't algemien is it ûnlogysk en net krekt.

Troch in proses te wiskjen dat ferbûn is mei de tsjinner, kinne jo in opnij ferbining nei it folgjende adres "twinge". It wurdt op deselde manier ymplementearre as de foarige kommando's, dus ik jou allinich:

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

Starte ek it AnyDesk-programma.

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

2.5. Wy sille de status fan AnyDesk ien kear yn 'e minút kontrolearje (of faker?), En as it ferbûn is, d.w.s. ferbining ESTABLISHED - blokkearje dizze IP, en wer hielendal opnij - wachtsje oant it ferbynt, blokkearje en wachtsje.

3. Oanfal

De koade waard "opsteld", it waard besletten om it proses te visualisearjen "+" spesifisearje fûn en blokkearre IP, en "." - werhelle kontrôle sûnder suksesfolle ferbining fan AnyDesk.

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk

Projekt Code

Dêrtroch…

Analyse fan 'e mooglikheid om in applikaasje te blokkearjen foar kontrôle op ôfstân fan in kompjûter oer in netwurk, mei it foarbyld fan AnyDesk
It programma wurke op ferskate kompjûters mei ferskillende Windows OS, mei AnyDesk ferzjes 5 en 6. Sa'n 500 adressen waarden sammele yn 80 iteraasjes. Foar 2500 - 87 en sa fierder ...

Yn 'e rin fan' e tiid berikte it oantal blokkearre IP's 100+.

Link nei finale tekst triem mei adressen: kearen и два

It is klear! In pool fan IP-adressen wurdt tafoege oan 'e regels fan' e haadrouter fia in skript, en AnyDesk kin gewoan gjin eksterne ferbining meitsje.

Der is in nuver momint, neffens de earste logs, is it dúdlik dat it adres belutsen is by de oerdracht fan ynformaasje boot-01.net.anydesk.com. Wy hawwe fansels blokkearre alle *.net.anydesk.com hosts as in algemiene regel, mar dat is net de oddity. Elke kear as in normale ping fan ferskate kompjûters jout dizze domeinnamme in oare IP. Kontrolearje yn Linux:

host boot-01.net.anydesk.com

lykas DNSLookup, se jouwe mar ien IP-adres, mar dit adres is fariabel. By it parsearjen fan in TCPView-ferbining krije wy PTR-records werom fan IP-adressen lykas relay-*.net.anydesk.com.

Teoretysk: om't de ping soms nei in ûnbekende net-blokkeare host giet boot-01.net.anydesk.com wy kinne dizze ip fine en blokkearje, meitsje dizze ymplemintaasje in gewoan skript ûnder Linux OS, hjir hoege jo gjin AnyDesk te ynstallearjen. De analyze liet sjen dat dizze IP's faak "krusing" mei dy fûn út ús list. Miskien is dit krekt dizze host, dêr't it programma oanslút foardat it begjint te "sortearjen" bekende IPs. Wierskynlik letter sil ik it artikel oanfolje mei it 2e diel fan host-sykopdrachten, hoewol op it stuit it programma sels ynstalleart gjin eksterne join yn 't algemien.

Ik hoopje dat jo neat yllegaal hawwe sjoen yn it boppesteande, en de makkers fan AnyDesk sille myn aksjes op in sportive manier behannelje.

Boarne: www.habr.com

Add a comment