มีวิธีการตรวจสอบว่าบริการ (ใน svchost.exe) การเชื่อมต่อขาออก?


13

ฉันกำลังทำซ้ำการกำหนดค่าไฟร์วอลล์ของฉันด้วยนโยบายที่ จำกัด มากขึ้นและฉันต้องการตรวจสอบที่มา (และ / หรือปลายทาง) ของการเชื่อมต่อขาออกบางอย่าง

ฉันมีปัญหาเพราะพวกเขามาจาก svchost.exe และไปที่เนื้อหาเว็บ / ผู้ให้บริการจัดส่งแอปพลิเคชัน - หรือคล้ายกัน:

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

ดังนั้นจึงเป็นไปได้ที่จะรู้ว่าบริการใดบ้างที่เชื่อมต่อกันโดยเฉพาะ? หรือคุณแนะนำอะไรเกี่ยวกับกฎที่ใช้กับกฎเหล่านี้

(ไฟร์วอลล์ Comodo และ Windows 7)

ปรับปรุง:

netstat -anoโปรดtasklist /svcช่วยฉันหน่อย แต่พวกเขามีบริการมากมายใน svchost.exe เดียวดังนั้นมันจึงยังมีปัญหาอยู่ นอกจากนี้ชื่อบริการที่ส่งคืนโดย "tasklist / svc" นั้นไม่สามารถอ่านได้ง่าย

(การเชื่อมต่อทั้งหมดเป็น HTTP (พอร์ต 80) แต่ฉันไม่คิดว่าเกี่ยวข้อง)

คำตอบ:


9

ฉันพบวิธีการในคำตอบข้อผิดพลาดเซิร์ฟเวอร์นี้(เกี่ยวกับบริการและการใช้หน่วยความจำ) ที่ฉันสามารถใช้เพื่อวิเคราะห์การใช้เครือข่ายของบริการ (ด้วยเครื่องมือเครือข่ายใด ๆ ) เป็นรายบุคคล

Peter Mortensen:

แยกแต่ละบริการเพื่อให้ทำงานในกระบวนการ SVCHOST.EXE ของตัวเองและบริการที่ใช้รอบ CPU จะสามารถมองเห็นได้ง่ายในตัวจัดการงานหรือกระบวนการ Explorer (ช่องว่างหลัง "=" จำเป็น):

SC Config Servicename Type= own

ทำสิ่งนี้ในหน้าต่างบรรทัดคำสั่งหรือใส่ไว้ในสคริปต์ BAT จำเป็นต้องมีสิทธิ์ระดับผู้ดูแลระบบและต้องรีสตาร์ทคอมพิวเตอร์ก่อนจึงจะมีผล

สถานะเดิมสามารถคืนค่าได้โดย:

SC Config Servicename Type= share

7

SysInternals Process Explorerสามารถทำสิ่งนี้ให้คุณได้

เปิดคุณสมบัติกระบวนการของsvchost.exeอินสแตนซ์ที่คุณพยายามวิเคราะห์ คลิกที่แท็บTCP / IP ดับเบิลคลิกที่การเชื่อมต่อที่คุณต้องการค้นพบเพื่อให้เห็นร่องรอยของการเชื่อมต่อ คุณควรจะสามารถติดตามสแต็กกลับไปที่ DLL ที่ใช้บริการ นี่คือข้อความที่ตัดตอนมาจากไฟล์ความช่วยเหลือในหัวข้อของProcess Properites :

TCP / IP:

จุดปลายทาง TCP และ UDP ที่ใช้งานอยู่จะแสดงในหน้านี้

ใน Windows XP SP2 และสูงกว่าหน้านี้มีปุ่มสแต็กที่เปิดกล่องโต้ตอบที่แสดงสแต็กของเธรดที่เปิดปลายทางที่เลือกในเวลาที่เปิด สิ่งนี้มีประโยชน์สำหรับการระบุวัตถุประสงค์ของจุดปลายในกระบวนการระบบและกระบวนการ Svchost เนื่องจากสแต็กจะรวมชื่อของไดรเวอร์หรือบริการที่รับผิดชอบปลายทาง

นอกจากนี้ในการกำหนดค่าสัญลักษณ์

กำหนดค่าสัญลักษณ์: ใน Windows NT และสูงกว่าหากคุณต้องการให้ Process Explorer แก้ไขที่อยู่ของที่อยู่เริ่มหัวข้อในแท็บเธรดของกล่องโต้ตอบคุณสมบัติกระบวนการและหน้าต่างสแต็กเธรดแล้วกำหนดค่าสัญลักษณ์โดยดาวน์โหลดเครื่องมือดีบักสำหรับ Windows จากเว็บของ Microsoft เว็บไซต์และติดตั้งในไดเรกทอรีเริ่มต้น เปิดไดอะล็อก Configure Symbols และระบุพา ธ ไปยัง dbghelp.dll ที่อยู่ในไดเร็กทอรี Debugging Tools และมีสัญลักษณ์ดาวน์โหลดเอ็นจิ้นสัญลักษณ์ตามความต้องการจาก Microsoft ไปยังไดเร็กทอรีบนดิสก์ของคุณโดยป้อนสตริงเซิร์ฟเวอร์สัญลักษณ์สำหรับพา ธ สัญลักษณ์ ตัวอย่างเช่นหากต้องการดาวน์โหลดสัญลักษณ์ไปยังไดเรกทอรี c: \ symbols คุณจะต้องป้อนสตริงนี้:

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

หมายเหตุ:คุณอาจต้องเรียกใช้ Process Explorer ในฐานะผู้ดูแลระบบเพื่อให้สามารถดูสแต็กของเธรด


น่าสนใจมาก แต่น่าเสียดายที่ PE v11.33 ดูเหมือนจะไม่สนับสนุนสแต็ก TCP / IP บน Windows 7: - / "สแต็กไม่พร้อมใช้งานใน Windows รุ่นนี้" ฉันไม่ได้พบยืนยันบนเว็บ แต่ผมค่อนข้างมั่นใจว่าผมได้กำหนดค่าสัญลักษณ์อย่างถูกต้อง ...
fluxtendu

ผลลัพธ์เดียวกันกับ PE 12 ใหม่: - /
fluxtendu

1
อืม .. ฉันได้รับเหมือนกันในวันที่ 7 แปลกทำงานได้ดีบน XP
Heavy

1
แท็บ TCP / IP ควรมีคอลัมน์ "บริการ" ซึ่งในขณะที่ดูตัวอย่างของ svchost.exe จะบอกคุณว่าบริการใดเป็นเจ้าของการเชื่อมต่อแต่ละรายการ (ระหว่างบริการที่จัดกลุ่มภายใต้ PID เดียวกัน) ตอนนี้ฉันกำลังใช้ PE 12.00 และตอนนี้ฉันไม่สามารถตรวจสอบได้ว่าคอลัมน์ "บริการ" อยู่ในรุ่นก่อนหน้านี้หรือไม่ แต่ควรลองดู
TataBlack

ทุกอย่างถูกต้อง สำหรับฉันคุณสมบัตินี้ใช้งานได้ใน XP เท่านั้น มันจะเป็นการดีที่ได้ตรวจสอบสิ่งที่มีการเปลี่ยนแปลงใน w7 ในเรื่องนี้ดังนั้นมันจึงไม่ทำงาน
saulius2

3

ฉันรู้ว่านี่อาจจะล้าสมัย แต่ยังหน้านี้อยู่ในอันดับต้น ๆ ในการค้นหา "การเชื่อมต่อ svchost" ดังนั้นฉันจะโยนอินพุตของฉันที่นี่ มีเครื่องมือที่เรียกว่า Svchost Process Analyzer มันอาจช่วยได้: https://www.neuber.com/free/svchost-analyzer/index.html


2

TCPViewเป็นเครื่องมือกราฟิกที่จะแสดงการบริการ PID และการเชื่อมต่อ TCP (ทั้งภายในและระยะไกล):

สกรีนช็อตของ TCPView


เช่น 'netstat -ano & tasklist / svc' เครื่องมือนี้แยกการเชื่อมต่อที่แตกต่างกันใน svchost PID แต่ไม่แสดงว่าบริการใดอยู่ด้านหลัง ... ดีกว่าเพราะมันเชื่อมโยง PID & การเชื่อมต่อ (และรู้จักพอร์ตที่รู้จักดี) แต่มันก็ไม่ใช่สิ่งที่ฉันกำลังมองหา (ยิ่งไปกว่านั้นมันไม่มีคุณสมบัติตัวกรองและบันทึก ... )
fluxtendu

ลงคะแนนเนื่องจากไม่สามารถแก้ปัญหาได้
Chris Dale

@ChrisDale: ฉันไม่เห็นด้วย คำตอบนี้แสดงว่าบริการใดกำลังเชื่อมต่ออยู่และเติมเต็มคำตอบที่ยอมรับได้
harrymc

@Harrymc TCPView แสดงเฉพาะ svchost.exe การฟังหรือการเชื่อมต่อ svchost ไม่ได้เป็นบริการเพียงภาชนะสำหรับบริการหลาย ๆ หากคุณจำเป็นต้องรู้ว่าบริการใดที่ทำการเชื่อมต่ออยู่คุณจะได้ผลกำไรที่ชาญฉลาดกว่าเมื่อคุณรู้ว่าหนึ่งในหลาย ๆ รายกำลังทำการเชื่อมต่อ ยุติธรรมเพียงพอมันเติมเต็มคำตอบ แต่เพียงตาด ฉันมีปัญหาเดียวกันและ TCPView ไม่ได้ยึดติดกับฉัน :) Sysinternals Process Explorer ทำเช่นนั้น
Chris Dale

1
@ChrisDale: มันแสดง pid จากสิ่งอื่นตามมา
harrymc

2

ลองใช้tasklist /svcและnetstatหรือnetstat -anจากบรรทัดคำสั่ง

นี่จะแสดงโปรแกรมที่ใช้ svchost.exe และพอร์ตต่าง ๆ เมื่อใช้หมายเลขพอร์ตคุณอาจสามารถค้นหาโปรโตคอลที่มักใช้หมายเลขนั้น ดูรายการของหมายเลข TCP และ UDP พอร์ต


ใช่ แต่ svchost.exe อินสแตนซ์เดียวมักจะโฮสต์บริการ 10-20 และเป็นการยากที่จะค้นหาว่าบริการใดผิดพลาด มีวิธีรับข้อมูลนั้นอยู่
Peter Mortensen

1

ใช้ตัวจัดการงานเพื่อดูคอลัมน์ PID สำหรับแต่ละกระบวนการในรายการกระบวนการ จากนั้นเรียกใช้netstat -anoเพื่อดูการเชื่อมต่อที่ใช้งานอยู่และ PID ที่เกี่ยวข้อง (= รหัสกระบวนการ)


1

ดังกล่าวพบว่า PID Svchost ของกระบวนการ Svchost กำหนดและ / หรือใช้แอปของบุคคลที่ 3 ที่ชอบ: Currports, ProcessExplorerจะช่วยให้คุณระบุบริการภายใต้กระบวนการที่กำหนด (svchost.exe หรือสิ่งอื่น) นอกจากนี้Svchost ViewerหรือSvchost Analyzerจะแสดงข้อมูล svchost อย่างเคร่งครัดเช่นกัน

ฉันยังต้องการที่จะเพิ่ม: รุ่นที่ใหม่กว่าของ Windows Task Manager ภายในจะแสดงอย่างน้อยแสดงข้อมูลที่ จำกัด เกี่ยวกับบริการที่ทำงานภายใต้ svchost (ไม่จำเป็นต้องติดตั้งอะไร):

ก่อนอื่นให้เลือกกระบวนการ svchost ภายใต้กระบวนการ
คลิกขวาที่กระบวนการ svchost ที่กำหนดและเลือก "ไปที่บริการ"
มันจะไปที่แท็บบริการโดยตรงและเน้นบริการที่กำหนดให้ทำงานภายใต้กระบวนการ svchost นั้น

วิธีอื่น:
การใช้พรอมต์ผู้ดูแลระบบ CMD:
tasklist /svc /fi "IMAGENAME eq svchost.exe" > svchost_services.txt
notepad svchost_services.txt
นี่เป็นวิธีที่รวดเร็วในการรับ PID ของ svchost / บริการที่เป็นปัญหา


1

ยูทิลิตี้ NirSoft CurrPortทำทุกสิ่งที่คุณต้องการรวมถึงการกรองและการให้รายชื่อบริการของกระบวนการ

ในความเป็นจริงปัญหาเดียวของมันคือวิธีการเลือกหนึ่งในคอลัมน์ข้อมูลจำนวนมหาศาลที่สามารถแสดงได้

สกรีนช็อตของยูทิลิตี CurrPorts


มันเป็นทางออกที่ดีที่สุดจนถึงตอนนี้ แต่ไม่ได้ทำสิ่งสำคัญที่ฉันกำลังมองหา: คอลัมน์ "บริการกระบวนการ" จัดกลุ่มบริการทั้งหมดที่เป็นไปได้ ...
fluxtendu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.