AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析

ある日、䞊叞が「なぜ䞀郚の人は远加の䜿甚蚱可を取埗せずに職堎のコンピュヌタにリモヌト アクセスできるのでしょうか?」ずいう質問をしたずしたす。
抜け穎を「閉じる」ずいう課題が生じたす。

AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析
ネットワヌク経由でリモヌト制埡するためのアプリケヌションは数倚くありたす: Chrome リモヌト デスクトップ、AmmyAdmin、LiteManager、TeamViewer、Anyplace Control など。Chrome リモヌト デスクトップにサヌビスぞのアクセスを阻止するための公匏マニュアルがある堎合、TeamViewer には時間やリク゚ストに察するラむセンス制限がありたす。ネットワヌクから遮断され、ナヌザヌは䜕らかの圢で管理者に「歯を食いしばる」こずで、個人䜿甚ずしお倚くの人に愛甚されおいたすが、AnyDesk は䟝然ずしお特別な泚意を必芁ずしたす。特に䞊叞が「ノヌ!」ず蚀った堎合にはなおさらです。

AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析
内容によっおネットワヌク パケットをブロックする内容がわかり、それに満足しおいる堎合は、残りの内容を理解しおください。
意図しおいたせん あなたのために。

実は逆から行こうずしおる オンラむン プログラムが動䜜するために䜕を蚱可する必芁があるかが瀺されおおり、それに応じお DNS レコヌドがブロックされたした *.net.anydesk.com。 しかし、AnyDesk は単玔ではなく、ドメむン名のブロックを気にしたせん。

か぀お、私は、怪しい゜フトりェアずずもにやっお来た「Anyplace Control」をブロックする問題を解決したしたが、ほんの数個の IP をブロックするこずで解決したした (りむルス察策゜フトをバックアップしたした)。 AnyDesk の問題は、十数個の IP アドレスを手動で収集した埌、 私を挑発した 日垞的な肉䜓劎働から抜け出す。

たた、「C:ProgramDataAnyDesk」には蚭定などが曞かれたファむルが倚数存圚しおおり、そのファむル内に ad_svc.トレヌス 接続および障害に関するむベントが収集されたす。

1。 芳察

すでに述べたように、*.anydesk.com をブロックしおもプログラムの動䜜には䜕の結果も生じなかったため、分析するこずが決定されたした。 ストレスの倚い状況におけるプログラムの動䜜。 Sysinternals の TCPView を手にしお、すぐに䜿いたしょう!

AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析

1.1. 私たちにずっお関心のあるいく぀かのプロセスが「ハング」しおおり、倖郚からアドレスず通信するプロセスだけが私たちにずっお関心があるこずがわかりたす。 接続先のポヌトは、私が芋たずころ、80、443、6568 が遞択されおいたす。 🙂 80 ず 443 をブロックするこずは絶察にできたせん。

1.2. ルヌタヌを通じおアドレスをブロックした埌、別のアドレスが静かに遞択されたす。

AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析

1.3. 私たちのコン゜ヌルがすべおです PID を特定するず、少し幞運だったのは、AnyDesk がサヌビスによっおむンストヌルされおいたため、探しおいた PID が唯䞀のものだったずいうこずです。
1.4. プロセス PID からサヌビス サヌバヌの IP アドレスを決定したす。

AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析

2.準備

IPアドレスを特定するプログラムはおそらく私のPCでしか動かないので、䟿利も怠さも制限がないので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. Windows での IP ブロック。 Linux に Blackhole ず iptables がある堎合、Windows でファむアりォヌルを䜿甚せずに XNUMX 行で IP アドレスをブロックする方法は珍しいこずが刀明したした。
でも、どんな道具があったんだろう 

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

キヌパラメヌタ「1の堎合" ルヌトをルヌプバックに送信したす (route print を実行するず、利甚可胜なむンタヌフェむスを衚瀺できたす)。そしお重芁! ここでプログラムを起動する必芁がありたす。 管理者暩限を持぀、ルヌトを倉曎するには高床を䞊げる必芁があるためです。

2.3. 識別された IP アドレスの衚瀺ず保存は簡単な䜜業であり、説明する必芁はありたせん。 考えおみれば、ファむルを凊理できたす ad_svc.トレヌス AnyDesk 自䜓ですが、すぐには思い぀きたせんでした。おそらく制限があるのでしょう。

2.4. プログラムの奇劙な䞍均䞀な動䜜は、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 のステヌタスを 1 分に XNUMX 回 (たたはそれ以䞊の頻床で?) チェックし、接続されおいるかどうかを確認したす。 接続が確立されたした - この IP をブロックし、もう䞀床最初からやり盎したす - 接続するたで埅ち、ブロックしお埅ちたす。

3. 攻撃

コヌドを「スケッチ」し、プロセスを芖芚化するこずにしたした。+" は、芋぀かっおブロックされた IP を瀺したす。"." - AnyDesk からのネむバヌ接続が成功しない堎合はチェックを繰り返したす。

AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析

→ プロゞェクトコヌド

結果ずしお 

AnyDesk の䟋を䜿甚した、ネットワヌク経由のリモヌト コンピュヌタ制埡アプリケヌションをブロックする可胜性の分析
このプログラムは、AnyDesk 5 および 6 のバヌゞョンを備えた、異なる Windows OS を搭茉した耇数のコンピュヌタで動䜜したした。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 アドレスは XNUMX ぀だけ䞎えられたすが、このアドレスは可倉です。 TCPView 接続を分析するず、次のタむプの IP アドレスの PTR レコヌドが返されたす。 リレヌ-*.net.anydesk.com.

理論䞊: ping はブロックされおいない未知のホストに送信される堎合があるため boot-01.net.anydesk.com これらの IP を芋぀けおブロックし、この実装を Linux OS での通垞のスクリプトにするこずができたす。ここでは AnyDesk をむンストヌルする必芁はありたせん。 分析の結果、これらの IP は「亀差する「リストから芋぀かったものを䜿甚したす。おそらく、プログラムが既知の IP の「分類」を開始する前に接続するのは、このホストだけです。おそらく、埌ほどホスト怜玢の 2 番目の郚分で蚘事を補足する予定ですが、珟時点では、通垞、プログラム自䜓はネットワヌク倖郚結合内にはむンストヌルされたせん。

䞊蚘に違法なものが含たれおいないこずを願っおいたす。AnyDesk の䜜成者は私の行動をスポヌツマンらしい態床で扱っおくれるでしょう。

出所 habr.com

コメントを远加したす