ฉันจะทราบได้อย่างไรว่าเครื่องออนไลน์อยู่โดยไม่ใช้ ping หรือไม่


12

ฉันเคยใช้แอพพลิเคชั่นที่สามารถ ping หรือเรียกใช้การสแกนพอร์ตบนเครื่องแม้ว่าเครื่องจะได้รับการกำหนดค่าให้ไม่อนุญาต

ฉันกำลังพยายาม ping เครื่องระยะไกลบน WAN ของเรา แต่ฉันได้กำหนดค่าเครื่องให้ไม่อนุญาตให้ ping มีบางอย่างที่คล้ายกับ ping ที่ฉันสามารถใช้ได้หรือไม่?

เครื่องจักรนี้ตั้งอยู่ในเมืองอื่นที่เป็นส่วนหนึ่งของวันเวลาของเรา

คำตอบ:


4

ถ้าใช้ XP / 2003 + (รวมถึง Vista / 2008/7) แล้วคุณสามารถใช้Win32_PingStatus เครื่องที่กำลังเรียกใช้รหัสสคริปต์เป็นระบบเดียวที่ต้องมี XP / 2003 + และใช้งานได้เหมือนกับใช้ Ping.exe เท่านั้นไม่ใช้ ping.exe ดังนั้นจึงควรทำหน้าที่เป็นช่องโหว่ในการตั้งค่าความปลอดภัยของคุณ ไม่อนุญาตให้เรียกใช้งาน ping.exe

strComputer = "192.168.1.1"
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery _
    ("Select * from Win32_PingStatus " & _
        "Where Address = '" & strComputer & "'")
For Each objItem in colItems
    If objItem.StatusCode = 0 Then 
        WScript.Echo "Reply received."          
    End If
Next

ดูบทความ Scripting Guy สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้ Win32_PingStatus:

http://www.microsoft.com/technet/scriptcenter/resources/qanda/sept04/hey0914.mspx


2
ฉันเข้าใจว่าโฮสต์ระยะไกลได้รับการกำหนดค่าไม่ให้ตอบกลับแพ็คเก็ตคำขอ ICMP Echo ไม่ใช่ว่า ping.exe บน localhost ถูกปิดการใช้งาน เช่นนี้จะไม่ทำอะไรที่แตกต่างจากการใช้ ping.exe ซึ่งก็คือไม่มีอะไรเลย
David Pashley

15

คุณสามารถเทลเน็ตไปยังพอร์ต tcp ที่เปิดอยู่บนเครื่อง ตัวอย่างเช่นหากเครื่องเป็นเว็บเซิร์ฟเวอร์และเปิดพอร์ต 80 เพียง:

telnet ip.ad.dre.ss 80

สิ่งนี้จะทำงานได้แม้ในพอร์ตที่เข้ารหัส (แม้ว่าคุณจะไม่สามารถเข้าใจข้อมูลได้)

พอร์ตอื่นที่ควรลองคือ:

  • 443 สำหรับเซิร์ฟเวอร์ https
  • 22 สำหรับ ssh

(มีรายการพอร์ต / บริการใน/ etc / servicesบนเครื่อง Linux)


7

Ping คือ ICMP หากคุณบล็อก ICMP คุณจะไม่สามารถ ping ได้

คุณอาจยังสามารถทดสอบพอร์ต TCP หรือ UDP หากคุณยอมรับการเชื่อมต่อ TCP / UDP

หากคุณใช้การทดสอบกับภาชนะบรรจุซึ่งขาด ping, nc, telnet และเครื่องมืออื่น ๆ คุณสามารถใช้เคล็ดลับนี้:

(echo >/dev/tcp/${host}/${port}) &>/dev/null && echo "open" || echo "closed"

นี้จะพยายามเชื่อมต่อผ่าน tcp / udp ผ่านอุปกรณ์ (ว้าวฉันรู้) และ echo "เปิด" ถ้าพอร์ตเปิดหรือ "ปิด" ถ้ามันถูกปิด

มันจะหยุดสักครู่ก่อนที่จะสะท้อน "ปิด" เมื่อเป็นกรณี


2
เจ๋งฉันต้องใช้สิ่งนี้ในนักเทียบท่า pod ;-)
Amorphous

4

รันเอเจนต์ SNMP บนเครื่องรีโมตและใช้ผู้จัดการเพื่ออ่านค่าใดค่าหนึ่งจาก MIB มาตรฐาน


3

หากคุณไม่มีไฟร์วอลล์และเราเตอร์ในทางคือถ้าคุณอยู่ในส่วนเดียวกับโฮสต์ที่คุณกำลังพยายามตรวจสอบ - โซลูชันส่วนใหญ่ข้างต้นเป็นคำตอบที่ละเอียดถี่ถ้วน

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

อย่างไร?

คุณสามารถใช้เครื่องมือใดก็ได้ที่คุณต้องการ แต่เราสามารถใช้ telnet ...

% telnet <host> 313373
Trying 10.211.55.3...
telnet: connect to address 10.211.55.3: Connection refused
telnet: Unable to connect to remote host
%

สิ่งนี้จะเกิดขึ้นทันทียกเว้นว่าโฮสต์กำลังทิ้งแพ็กเก็ต สิ่งที่เกิดขึ้นจริงคือสแต็ก TCP / IP บนโฮสต์กำลังส่งคุณเซกเมนต์ TCP ด้วยชุดบิต RST - นั่นคือการยกเลิกแพ็คเก็ต SYN ของคุณ

ความจริงที่ว่าคุณได้รับแพ็คเก็ต RST นั้นหมายความว่ามีโฮสต์อยู่ที่ปลายอีกด้านหนึ่งและเป็นโบนัส - คุณไม่ได้ทำการตรวจสอบ (TCP / IP ไม่มีแอปพลิเคชันชั้นบนที่จะพูดคุยเกี่ยวกับการเชื่อมต่อนี้) .

อย่างไรก็ตามแทนที่จะใช้ telnet ฉันอาจใช้ scapy เขียนสิ่งที่ค้นหาการตั้งค่าสถานะ RST และแจ้งให้คุณทราบ

เพียงแค่ทำสิ่งนี้ให้เสร็จสมบูรณ์หากไม่มีโฮสต์บน IP ที่คุณลอง - มันจะหยุดสักครู่และหมดเวลา - สิ่งเดียวกันที่จะเกิดขึ้นหากโฮสต์ที่รับมีไฟร์วอลล์ที่มีตัวกรองแบบหล่น

หากไฟร์วอลล์มีส่วนเกี่ยวข้องตามที่คนอื่นแนะนำให้ใช้เครื่องมือเช่นnmapและอะไรก็ตาม


3

หากคุณมีการเข้าถึงไปยังเครื่องอื่นใน LAN เดียวกันเป็นเครื่องเป้าหมายของคุณคุณสามารถใช้arping

Arping ทำงานโดยการส่งแพ็คเก็ต ARP ที่กำหนดเป้าหมายเครื่องทำงานได้อย่างสมบูรณ์แบบเพราะคุณไม่สามารถบล็อกแพ็กเก็ต arp หากคุณต้องการใช้เครือข่าย (ดีคุณสามารถตั้งค่าตาราง arp คงที่ทุกที่: D) แต่ข้อเสียคือคุณต้องอยู่ภายใน LAN เดียวกันกับเป้าหมายของคุณ


1

มีบริการใด ๆ ในเครื่องหรือไม่? วิธีหนึ่งในการดูว่าเครื่องมีการใช้ไคลเอ็นต์ telnet เพื่อเชื่อมต่อหรือไม่ แต่เปลี่ยนพอร์ตที่คุณต้องกด

ดังนั้นสมมติว่าเครื่องกำลังเรียกใช้ MS SQL ซึ่งทำงานบนพอร์ต 1433 โดยค่าเริ่มต้น คุณใช้คำสั่งต่อไปนี้

telnet machine-name-address 1433

หาก Telnet เชื่อมต่อกับเครื่องกำลังทำงานหมายความว่าไม่ได้ทำงานอย่างถูกต้อง แต่การฟังพอร์ตนั้นยังคงอยู่



1

nmap -T5 -sS -P0 ho.st.ip.addr นั่นจะเห็นว่ามีพอร์ตอะไรที่ฉลาดในเครื่องนั้น .. แนะนำให้ติดตั้ง cygwin หากคุณใช้งานบน windows หรือไม่สามารถเข้าถึงเครื่อง linux


1

เครื่องสแกนเครือข่าย softperfect

google สำหรับมัน

ฉันใช้มันมาก ใช้งานได้ดี


1

Google สำหรับ "nmap" ฉันใช้สิ่งนี้ตลอดเวลา เหมาะสำหรับการตรวจสอบไฟร์วอลล์ของคุณเช่นกัน บวกฉันเชื่อว่ามันถูกอ้างถึงในภาพยนตร์เรื่อง Matrix ซึ่งทำให้มันยอดเยี่ยมเป็นสองเท่า


1

คุณสามารถให้เครื่องส่ง snmp trap (แพ็คเก็ต) หนึ่งครั้งต่อนาทีไปยังจอภาพระยะไกลและตั้งค่ากฎเพื่อตรวจสอบว่าคุณได้รับกับดักทุกนาที


1
นี่เป็นคำตอบที่ดีและถูกต้องมาก SNMP อยู่ในระดับต่ำพอและสามารถกำหนดค่าบนระบบ windows เป็นทางเลือกเดียวสำหรับ ICMP และในความเป็นจริงแล้ววิศวกรเครือข่ายใช้เป็นประจำเพื่อตรวจสอบเราเตอร์และระบบผ่าน WAN และ LAN
Abhishek Dujari

1

ทางออกที่ง่ายสำหรับปัญหานี้คือการใช้ยูทิลิตี้ netcat สิ่งที่จำเป็นต้องมีสำหรับสถานการณ์นี้คือควรทราบว่ามีพอร์ตอย่างน้อยหนึ่งพอร์ตที่เปิดอยู่บนเครื่องระยะไกล

nc -nv ip_address port_number

คำสั่งดังกล่าวจะให้ผลซึ่งจะตรวจสอบว่าพอร์ตดังกล่าวเปิดหรือไม่และด้วยเหตุนี้ความพร้อมของเครื่อง


0

คุณสามารถติดตั้งเว็บเซิร์ฟเวอร์แบบง่าย ๆ และใช้เว็บเพจที่ชื่อว่า "ออนไลน์" คุณจะต้องเชื่อมต่อกับมันทุกที่ที่คุณต้องการแน่นอนว่าคุณต้องใช้ statin ip หรือบริการ linke dyndns


0

วิธีการที่ง่ายมากคือการเทลเน็ตไปยังพอร์ต TCP ที่ควรเปิดบนเซิร์ฟเวอร์เช่น:

telnet theServerHostname 80

แม้ว่าบริการจะไม่ทำงานคุณจะได้รับผลลัพธ์เหมือนกับโฮสต์ไม่ทำงาน

มีการสแกนทุกประเภทที่สามารถทำได้ด้วย nmap เรียนรู้เกี่ยวกับการสแกนบนเว็บไซต์ของ nmapและคุณควรเป็นผู้เชี่ยวชาญในการทดสอบว่าโฮสต์นั้นทำงานหรือไม่ สิ่งเหล่านี้รวมถึงการใช้โปรโตคอลอื่นที่ไม่ใช่ icmp (ping) เช่น TCP (ตามที่ telnet ทำ) และ UDP

นอกจากนี้ถ้าคุณต้องการบางสิ่งบางอย่างที่มีความสามารถในการเชื่อมต่อกับ UDP, ที่คล้ายกับ Telnet ในความรู้สึกนี้พิจารณาnetcat


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