มีวิธีเรียกใช้คำสั่ง (เช่นข้อความ ICMP หรือโปรโตคอลอื่น) รับการตอบสนองจากเครื่องระยะไกล (ไม่ใช่เครือข่ายส่วนตัวของฉัน) และวิเคราะห์ข้อความเพื่อค้นหาหลักฐานบางอย่างว่าเครื่องนี้ใช้ Windows หรือ ระบบปฏิบัติการ Linux?
มีวิธีเรียกใช้คำสั่ง (เช่นข้อความ ICMP หรือโปรโตคอลอื่น) รับการตอบสนองจากเครื่องระยะไกล (ไม่ใช่เครือข่ายส่วนตัวของฉัน) และวิเคราะห์ข้อความเพื่อค้นหาหลักฐานบางอย่างว่าเครื่องนี้ใช้ Windows หรือ ระบบปฏิบัติการ Linux?
คำตอบ:
ไม่ชัดเจน แต่nmapจะทำสิ่งนี้กับคำสั่งnmap -O -v
( ดูเอกสารสำหรับรายละเอียดเพิ่มเติม) หากคุณใช้ windows หรือต้องการ gui ดูzenmap
หากคุณอยู่ในเครือข่าย IPv4 เพียงใช้ ping หากการตอบสนองมี TTL 128 เป้าหมายอาจจะใช้ Windows หาก TTL เป็น 64 เป้าหมายอาจมีความแตกต่างของ Unix
: Presumes ping service enabled on Windows local and remote hosts
:
del _IX.txt, Windows.txt
ping -n 1 [computername|ipaddress] | findstr /i /c:"Reply" > ttl.txt
for /f "tokens=1-9* delims=:=< " %%a in (ttl.txt) do (
if %%i leq 130 (
if %%i geq 100 (
echo Windows & rem or echo %%c >> Windows.txt
) else (
if %%i equ 64 (
echo *IX & rem or echo %%c >> _IX.txt
)
)
)
)
แพ็คเกจ: xprobe 'OR' xprobe2
คำอธิบาย: การระบุระบบปฏิบัติการระยะไกล Xprobe2 ช่วยให้คุณกำหนดระบบปฏิบัติการที่ทำงานบนโฮสต์ระยะไกล ส่งหลายแพ็คเก็ตไปยังโฮสต์และวิเคราะห์คำตอบที่ส่งคืน ฟังก์ชั่นของ Xprobe2 เปรียบได้กับคุณสมบัติการพิมพ์ลายนิ้วมือ OS ใน nmap
ตัวอย่าง:
$ sudo apt-get install xprobe
$ sudo xprobe2 -T21-23,80,53,110 ###. ###. ###. ###. ###
การอ้างอิง:
http://www.sys-security.com/html/projects/X.html
http://sourceforge.net/projects/xprobe/
โพสต์เก่า แต่คิดว่าฉันจะเพิ่มเข้าไปในส่วนนี้เช่นกันหากอุปกรณ์นั้นเปิดใช้งาน SNMP คุณสามารถสอบถาม sysDescr ซึ่งจะบอกระบบปฏิบัติการที่คุณใช้
ดาวน์โหลดเบราว์เซอร์ MIB, ที่ดีอย่างหนึ่งที่ผมใช้อยู่ที่นี่: http://www.ireasoning.com/downloadmibbrowserfree.php โดยทั่วไปคุณให้ที่อยู่ IP ของอุปกรณ์และดำเนินการเดิน
ทำตามคำแนะนำของ Johnathon64 คุณสามารถใช้ SNMP เพื่อสอบถามโดยตรงบนเซิร์ฟเวอร์โดยสมมติว่าเซิร์ฟเวอร์ระยะไกลนั้นได้รับการกำหนดค่าให้ใช้ SNMP คุณสามารถเรียกใช้คิวรีแบบบรรทัดคำสั่งเช่นแบบสอบถามด้านล่างเพื่อทำ:
snmpget -v1 -c public <RemoteServerIP> sysDescr.0 | sed -n 's/.*STRING: //p' | tr -d \"
อธิบายคำสั่งเอง:
snmpget
จะสอบถามวัตถุ sysDescr ซึ่งมีชื่อเริ่มต้นของวัตถุsed
จะแยกเอาท์พุทเริ่มต้นซึ่งมีเฉพาะ OID แบบสำรวจและเริ่มต้นของสตริงtr
จะยกเว้นเครื่องหมายคำพูดคู่ใด ๆ ที่มักพบในแบบสอบถาม SNMPคำสั่งสองคำสั่งสุดท้ายใช้สำหรับการจัดรูปแบบเอาต์พุตเท่านั้น - หากคุณไม่ต้องการคำสั่งนั้นอาจใช้คำสั่งแรกสุดเพื่อแยกเอาต์พุตทั้งหมด