一度、休暇から戻ったとき、かなりいたずらだったので、PHPで何か神聖なものを作ることにしました。 彼は愛するデンワーを開き、予期せぬ変化に驚きました。アパッチは完全に80番の港を聞くことを拒否しました。つまり、今晩の私の高貴な意図は危うくなっていました。 一般的に、状況はかなり平凡です-すぐに切望されたトリガーが頭の中で働きました:Skype! しかし、驚いたことに、Skypeは、対応する設定の反対側にチェックマークがないため、この事件への関与を直ちに発表しました。 外国のテレビ電話のアリバイを最終的に確認するために、私はまだ80番目のポートを聞いている人を確認することにしました。
私が見たものは私に楽観主義を加えることはしませんでしたが、むしろ私に私の考えを冠させました:
PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 900
RpcSs
[svchost.exe]
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:990 0.0.0.0:0 LISTENING 2428
WcesComm
[svchost.exe]
TCP 0.0.0.0:5357 0.0.0.0:0 LISTENING 4
違法な武装ギャングがコンピューター上で動作していることが明らかになりました。 さらに、PID = 4はシステムプロセスに属しているため、パルチザンメソッドとして機能します。
最初に考えたのは偶然でした。ポートで誰かがリッスンしている場合、おそらく彼はそこに何かに応答しているので、Firefox + Firebugの束を持って、
localhostにリクエストを送信しました。 奇妙なことに、クレイジーな考えは実を結びました。 未知の敵は答えた:
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sat, 25 Sep 2010 11:20:20 GMT
Connection: close
Content-Length: 315
そのため、容疑者(または彼の共犯者)の名前が明らかになりました:Microsoft-HTTPAPI / 2.0。 獣は私にとって新しいものであり、この点まではなじみがないので、情報を得るためにWorld Wide Webの広大な場所に行くことにしました。 グーグル、
Habr-Q&Aおよび
askdev.ruの質問全般は、特別な利益をもたらしませんでした。 基本的に、人々はMS SQL Serverの一部のReporting Servicesまたはシステム内のIISの残りを指摘しました。 どちらもありませんでした(念のためですが、ファイル名を徹底的に検索してこれらのバージョンを確認しました)。 そのため、見通しは絶望的なもの-トロイの木馬またはワーム-に迫りました。 次の数日(または夕方)、さまざまなウイルス対策ソフトウェアを使用した「望ましくないソフトウェア」の検索に失敗しました。 結果はありませんでした。 遠くで、システムの完全な再インストールの幽霊が迫りました。
同時に、尊敬されているコミュニティへの質問は無駄ではありませんでした。ある同志は、ファイルc:\ Windows \ System32 \ httpapi.dllを愚かに削除することを提案しました。 もちろん、ライブラリは削除しませんでしたが、ファイルに注意しました。 SysInternalsのユーティリティに電話を切った後、私は戦いに突入しました。
C:\Windows\system32>tasklist /M httpapi.dll
PID
========================= ======== ============================================
svchost.exe 1328 HTTPAPI.dll
svchost.exe 2628 HTTPAPI.dll
svchost.exe 3856 HTTPAPI.dll
tasklistは標準のWindowsユーティリティであり、基本的にはコンソールタスクマネージャーです。 / Mスイッチを使用すると、指定されたライブラリを使用しているプロセスを確認できます。 「直接執行者」が明らかになりました。 次に、SysInternalsからProcess Explorerを起動すると、指定された識別子を持つプロセスが見つかりました。 [プロパティ]ダイアログを開いて、[サービス]タブで、これらのプロセスに登録されているWindowsサービスをかなり見ました。 多くのサービスがあったので、選択の余地はありませんでした。推測の正確さを確認するためだけにすべてをオフにしました。 サービスには、スマートカード、BranchCache、スマートカード削除ポリシー、ホームグループリスナー、SSDPディスカバリー、ディスカバリープロバイダーホストなどがあります。再起動後、ローカルネットワークは機能しませんでした(インターネットはまだ機能していましたが) )しかし、私の喜びで、80番目の港は解放されました。 この後、ルーチンがありました。サービスを1つずつオフにし、80番目のポートがビジーであるかどうかを確認します。 ここで、小さな発言が必要です。ポートをリッスンするプロセスに複数のサービスが登録されているという事実は、これらすべてのサービスがこのポートをリッスンしているという意味ではありません。 彼らは「間違った時間に、間違った場所に」いることが判明しました。 したがって、攻撃者は非常に正確に特定されました。説明から次のように、BranchCacheであることが判明しました。ローカルサブネット上のキャッシュノードから受信したネットワークコンテンツをキャッシュします。
それでは、技術の問題です。 BranchCacheの
ガイドはMSDNで掘り下げられ、BranchCacheはさまざまなモードで動作することがわかりました。専用サーバー(サーバーとしてWindows Server 2008 R2を実行するマシンが必要)と分散ストレージ(Windows 7の通常バージョンで実行可能)。 したがって、2つのことを行う必要がありました。ポートを変更し、動作モードを分散ストレージとして設定します。
REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\PeerDist\DownloadManager\Peers\Connection" /v ListenPort /t REG_DWORD /d 4455 /f
REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\PeerDist\DownloadManager\Peers\Connection" /v ConnectPort /t REG_DWORD /d 4455 /f
netsh br set service mode=distributed
その後、BranchCacheをオンに戻し、80番目のポートが空いていることを確認します(ポート4455は現在リッスンしています)。 戦闘ミッションは正常に完了しました。
UPD :コメントの友人からのリクエストに応じて、BranchCacheは通常のWindowsサービスであると報告しています。 パラメータで[スタートアップの種類]を[無効]に設定することで無効にできます。 デフォルトでは、このサービスには「手動」起動タイプがあり、アプリケーションの要求に応じて起動されます。 そのため、ほとんどのユーザーにとって、すぐに無効にする必要があります。