Apakah ada cara untuk menentukan layanan mana (dalam svchost.exe) yang melakukan koneksi keluar?

12

Saya mengulangi konfigurasi firewall saya dengan kebijakan yang lebih ketat dan saya ingin menentukan sumber (dan / atau tujuan) dari beberapa koneksi keluar.

Saya memiliki masalah karena mereka berasal dari svchost.exe dan pergi ke penyedia pengiriman konten / aplikasi web - atau serupa:

5 IP in range: 82.96.58.0 - 82.96.58.255      --> Akamai Technologies         akamaitechnologies.com
3 IP in range: 93.150.110.0 - 93.158.111.255  --> Akamai Technologies         akamaitechnologies.com
2 IP in range: 87.248.194.0 - 87.248.223.255  --> LLNW Europe 2               llnw.net
205.234.175.175                               --> CacheNetworks, Inc.         cachefly.net
188.121.36.239                                --> Go Daddy Netherlands B.V.   secureserver.net

Jadi apakah mungkin untuk mengetahui layanan mana yang melakukan koneksi tertentu? Atau apa rekomendasi Anda tentang aturan yang diterapkan pada aturan ini?

(Comodo Firewall & Windows 7)

Memperbarui:

netstat -ano& tasklist /svcBantu saya sedikit tetapi mereka banyak layanan dalam satu svchost.exe sehingga masih menjadi masalah. apalagi nama layanan yang dikembalikan oleh "tasklist / svc" tidak mudah dibaca.

(Semua koneksi adalah HTTP (port 80) tapi saya pikir itu tidak relevan)

fluxtendu
sumber

Jawaban:

9

Saya telah menemukan metode dalam jawaban Server Fault ini (tentang layanan dan penggunaan memori) yang dapat saya gunakan untuk menganalisis secara individual penggunaan jaringan layanan (dengan alat jaringan apa pun)

Peter Mortensen:

Bagi setiap layanan untuk dijalankan dalam proses SVCHOST.EXE-nya sendiri dan layanan yang menggunakan siklus CPU akan mudah terlihat di Task Manager atau Process Explorer (diperlukan ruang setelah "="):

SC Config Servicename Type= own

Lakukan ini di jendela baris perintah atau letakkan di skrip BAT. Hak administratif diperlukan dan restart komputer diperlukan sebelum mulai berlaku.

Keadaan asli dapat dipulihkan dengan:

SC Config Servicename Type= share
fluxtendu
sumber
7

SysInternals Process Explorer dapat melakukan ini untuk Anda.

Buka properti proses dari svchost.exeinstance yang Anda coba analisis. Klik pada tab TCP / IP . Klik dua kali pada koneksi yang ingin Anda temukan untuk memunculkan setumpuk jejak koneksi. Anda harus dapat melacak tumpukan kembali ke DLL yang mengimplementasikan layanan. Berikut adalah kutipan dari file bantuan tentang topik Properites Proses :

TCP / IP:

Setiap titik akhir TCP dan UDP aktif yang dimiliki oleh proses ditampilkan pada halaman ini.

Pada Windows XP SP2 dan lebih tinggi halaman ini termasuk tombol Stack yang membuka dialog yang menunjukkan tumpukan utas yang membuka titik akhir yang dipilih pada saat pembukaan. Ini berguna untuk mengidentifikasi tujuan titik akhir dalam proses Sistem dan proses Svchost karena tumpukan akan menyertakan nama driver atau layanan yang bertanggung jawab untuk titik akhir

Juga pada Mengkonfigurasi Simbol

Konfigurasikan Simbol: pada Windows NT dan yang lebih tinggi, jika Anda ingin Process Explorer menyelesaikan alamat untuk memulai thread di tab thread pada dialog properti proses dan jendela stack thread kemudian mengkonfigurasi simbol dengan terlebih dahulu mengunduh Debugging Tools untuk paket Windows dari Microsoft web situs dan menginstalnya di direktori default-nya. Buka dialog Configure Symbols dan tentukan path ke dbghelp.dll yang ada di direktori Debugging Tools dan minta simbol mesin unduh simbol sesuai permintaan dari Microsoft ke direktori di disk Anda dengan memasukkan string server simbol untuk jalur simbol. Misalnya, untuk mengunduh simbol ke direktori c: \ simbol Anda akan memasukkan string ini:

srv c: \ simbol http://msdl.microsoft.com/download/symbols

Catatan: Anda mungkin perlu menjalankan Process Explorer sebagai administrator untuk dapat melihat tumpukan utas.

astaga
sumber
Sangat menarik, tetapi sayangnya PE v11.33 tampaknya tidak mendukung tumpukan TCP / IP pada Windows 7: - / "Stacks tidak tersedia pada versi Windows ini". Saya tidak menemukan konfirmasi di web tapi saya cukup yakin saya telah mengkonfigurasi Simbol dengan benar ...
fluxtendu
Hasil yang sama dengan PE 12 baru: - /
fluxtendu
1
Hmm .. saya mendapatkan yang sama pada 7. Aneh itu berfungsi dengan baik di XP.
heavyd
1
Tab TCP / IP harus memiliki kolom "Layanan" yang, misalnya saat melihat contoh svchost.exe, memberi tahu Anda layanan mana yang memiliki setiap koneksi (di antara layanan yang dikelompokkan dalam PID yang sama). Saat ini saya menggunakan PE 12.00, dan saat ini saya tidak dapat memeriksa apakah kolom "Layanan" ada di versi sebelumnya, tetapi harus dicoba.
TataBlack
Semua kamu benar. Bagi saya fitur ini hanya berfungsi di XP. Akan menyenangkan untuk menyelidiki apa yang telah berubah di w7 dalam hal ini sehingga tidak berfungsi.
saulius2
2

Saya tahu ini mungkin sudah ketinggalan zaman, tetapi masih halaman ini peringkat tinggi dalam mencari "koneksi svchost", jadi saya akan melemparkan masukan saya di sini. Ada alat yang disebut Svchost Process Analyzer, mungkin membantu: http://www.neuber.com/free/svchost-analyzer/index.html

AKsik
sumber
2

Coba gunakan tasklist /svcdan netstatatau netstat -andari baris perintah.

Ini akan menunjukkan kepada Anda program-program yang menggunakan svchost.exe dan port-portnya. Menggunakan nomor port, Anda mungkin dapat mencari protokol yang biasanya menggunakan nomor tersebut. Lihat Daftar nomor port TCP dan UDP .

bugtussle
sumber
Ya, tetapi satu contoh svchost.exe sering menampung 10-20 layanan, dan sulit mengetahui layanan mana yang salah. Ada cara untuk mendapatkan informasi itu .
Peter Mortensen
2

TCPView adalah alat grafis yang akan menunjukkan kepada Anda layanan, PID, dan koneksi TCP (baik lokal maupun jarak jauh):

Gambar

harrymc
sumber
Seperti 'netstat -ano & tasklist / svc' alat ini membedakan koneksi yang berbeda dalam satu PID svchost tetapi tidak menunjukkan layanan mana di belakangnya ... Ini sudah lebih baik karena menghubungkan PID & koneksi (dan mengenali beberapa port yang dikenal baik) tapi itu masih bukan yang saya cari. (Selain itu tidak memiliki fitur filter dan log ...)
fluxtendu
Downvote karena ini tidak menyelesaikan masalah
Chris Dale
@ ChrisDale: Saya tidak setuju. Jawaban ini menunjukkan layanan mana yang terhubung, dan melengkapi jawaban yang diterima.
harrymc
@Harrymc TCPView hanya menampilkan svchost.exe mendengarkan atau membuat koneksi. svchost bukan layanan, hanya wadah untuk banyak layanan. Jika Anda perlu tahu layanan mana yang membuat koneksi, Anda hanya sedikit lebih pintar karena Anda tahu bahwa satu dari banyak yang membuat koneksi. Cukup adil, itu melengkapi jawabannya, tetapi hanya sedikit. Saya memiliki masalah yang sama, dan TCPView tidak melakukannya untuk saya :) Sysinternals Process Explorer melakukannya.
Chris Dale
1
@ ChrisDale: Itu menunjukkan pid, dari semua yang lain berikut.
harrymc
1

Gunakan pengelola tugas untuk melihat kolom PID untuk setiap proses dalam daftar proses. Kemudian jalankan netstat -anountuk melihat koneksi aktif dan PID terkait (= id proses).

hurikhan77
sumber
1

Utilitas NirSoft CurrPorts melakukan semua yang Anda inginkan, termasuk memfilter dan memberikan daftar layanan dari suatu proses.

Bahkan, satu-satunya masalah dengan itu adalah bagaimana memilih di antara sejumlah besar kolom informasi yang berpotensi dapat ditampilkan.

gambar

harrymc
sumber
Ini solusi terbaik sejauh ini tetapi tidak melakukan hal penting yang saya cari: Kolom "Proses Layanan" mengelompokkan semua layanan yang mungkin ...
fluxtendu
1

Seperti disebutkan, menemukan PID svchost proses svchost diberikan dan / atau menggunakan aplikasi pihak ke-3 seperti: Currports, ProcessExplorerakan membantu Anda mengidentifikasi layanan dalam proses yang diberikan (svchost.exe atau apa pun). Juga, Svchost Viewer atau Svchost Analyzer akan secara ketat menunjukkan Anda info svchost juga.

Saya juga ingin menambahkan: Versi yang lebih baru dari Windows Task Manager bawaan setidaknya akan menunjukkan kepada Anda beberapa informasi terbatas tentang layanan yang berjalan di bawah svchost (tidak perlu menginstal apa pun):

Pertama, pilih proses svchost di bawah Proses.
Klik kanan proses svchost yang diberikan dan pilih "Pergi ke Layanan"
Ini akan langsung ke tab layanan dan sorot layanan yang diberikan berjalan di bawah proses svchost itu.

Metode lain:
Menggunakan administrator CMD prompt:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
Ini juga merupakan cara cepat untuk mendapatkan PID dari svchost / layanan yang bersangkutan.

bshea
sumber