Có cách nào để chạy lệnh (như tin nhắn ICMP hoặc giao thức khác), nhận phản hồi từ máy từ xa (không phải trên mạng cục bộ riêng của tôi) và phân tích tin nhắn để tìm một số bằng chứng cho thấy máy này đang chạy Windows hoặc một hệ điều hành Linux?
Có cách nào để chạy lệnh (như tin nhắn ICMP hoặc giao thức khác), nhận phản hồi từ máy từ xa (không phải trên mạng cục bộ riêng của tôi) và phân tích tin nhắn để tìm một số bằng chứng cho thấy máy này đang chạy Windows hoặc một hệ điều hành Linux?
Câu trả lời:
Nó không dứt khoát nhưng nmap sẽ thực hiện điều này bằng lệnh nmap -O -v
( xem tài liệu để biết thêm chi tiết) Nếu bạn đang chạy windows hoặc muốn có gui, hãy xem zenmap
Nếu bạn đang sử dụng mạng IPv4, chỉ cần sử dụng ping. Nếu phản hồi có chỉ số là 128, thì mục tiêu có thể là chạy Windows. Nếu TTL là 64, mục tiêu có thể đang chạy một số biến thể của 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
)
)
)
)
Gói: xprobe 'OR' xprobe2
Mô tả: Nhận dạng hệ điều hành từ xa Xprobe2 cho phép bạn xác định hệ điều hành nào đang chạy trên máy chủ từ xa. Nó sẽ gửi một số gói đến một máy chủ lưu trữ và phân tích các câu trả lời được trả về. Chức năng của Xprobe2 có thể so sánh với tính năng lấy dấu vân tay của hệ điều hành trong nmap.
Ví dụ:
$ sudo apt-get install xprobe
$ sudo xprobe2 -T21-23,80,53,110 ###. ###. ###. ###
Tham khảo:
http://www.sys-security.com/html/projects/X.html
http://sourceforge.net/projects/xprobe/
Bài đăng cũ nhưng tôi nghĩ tôi cũng sẽ thêm vào điều này, nếu thiết bị được bật SNMP, bạn cũng có thể truy vấn sysDescr sẽ cho bạn biết hệ điều hành mà nó đang sử dụng.
Tải xuống trình duyệt MIB, một trình duyệt tốt mà tôi sử dụng có tại đây: http://www.ireasoning.com/doadmibbrowserfree.php . Về cơ bản, bạn cung cấp cho nó địa chỉ IP của thiết bị và thực hiện thao tác đi bộ.
Theo đề xuất của Johnathon64, bạn có thể sử dụng SNMP để truy vấn trực tiếp trên máy chủ - giả sử chính máy chủ từ xa được cấu hình để sử dụng SNMP. Bạn có thể khởi chạy một truy vấn dòng lệnh như câu hỏi dưới đây để thực hiện:
snmpget -v1 -c public <RemoteServerIP> sysDescr.0 | sed -n 's/.*STRING: //p' | tr -d \"
Giải thích về lệnh:
snmpget
sẽ truy vấn đối tượng sysDescr, chứa tên mặc định của đối tượng.sed
sẽ loại trừ đầu ra bắt đầu, chỉ chứa OID được thăm dò và đầu chuỗi.tr
, sẽ loại trừ mọi dấu ngoặc kép, thường được tìm thấy trong truy vấn SNMP.Hai lệnh cuối chỉ để định dạng đầu ra - nếu bạn không cần chúng, có thể sử dụng lệnh đầu tiên để trích xuất đầu ra hoàn chỉnh.