Câu trả lời:
Bao nhiêu bạn biết về mạng LAN trong câu hỏi? Tôi cho rằng bạn không biết bất cứ điều gì chỉ cần cắm cáp hoặc kết nối với wifi.
-sP
trong trường hợp một số máy chủ không phản hồi ping (xem tài liệu hướng dẫn ). Điều quan trọng là nmap chỉ hoạt động nếu cài đặt và tuyến mạng của bạn là chính xác.Một số (hầu hết?) Quản trị viên hệ thống không thích một vài phương pháp trên, vì vậy hãy đảm bảo rằng nó được cho phép (ví dụ: đó là mạng của bạn). Cũng lưu ý rằng tường lửa của riêng bạn có thể ngăn một số phương thức này (thậm chí nhận IP bằng DHCP) vì vậy hãy kiểm tra quy tắc của bạn trước.
Bản đồ
Dưới đây là cách thực hiện khám phá máy chủ cơ bản với nmap . Như tôi đã nói cấu hình mạng của bạn phải chính xác khi bạn thử điều này. Giả sử bạn là 192.168.0.50 bạn đang ở trên mạng con / 24. Địa chỉ MAC của bạn là một cái gì đó được phép kết nối, v.v. Tôi muốn có wireshark chạy để xem những gì tôi đang làm.
Đầu tiên tôi muốn thử quét danh sách, chỉ thử giải quyết các bản ghi PTR trong DNS cho các địa chỉ IP được chỉ định. Nó không gửi gì đến máy chủ nên không có gì đảm bảo nó thực sự được kết nối hoặc bật nhưng có một cơ hội tốt. Chế độ này rõ ràng cần một máy chủ DNS sẵn sàng nói chuyện với bạn.
nmap -vvv -sn -sL 192.168.1.0/16
Điều này có thể không tìm thấy gì hoặc nó có thể cho bạn biết rằng mỗi IP đều tăng.
Sau đó tôi thường đi quét ARP. Nó sẽ gửi các yêu cầu ARP (bạn thấy chúng như "Who has <target IP>? Tell <your IP>"
trong wireshark). Điều này là khá đáng tin cậy vì bộ lọc noone hoặc giả mạo ARP. Nhược điểm chính là nó chỉ hoạt động trên mạng con của bạn.
nmap -vvv -sn -PR 192.168.1.0/24
Nếu bạn muốn quét một cái gì đó đằng sau bộ định tuyến hoặc tường lửa thì hãy sử dụng quét SYN và ACK. SYN bắt đầu kết nối TCP và bạn sẽ nhận được phản hồi RST hoặc SYNACK. Dù bằng cách nào thì chủ nhà lên. Bạn có thể bị cấm giao tiếp ICMP hoặc đại loại như thế nếu có tường lửa. Hầu hết thời gian nếu tường lửa lọc các gói của bạn, bạn sẽ không nhận được gì. Một số loại tường lửa chỉ lọc các gói TCP SYN và cho phép mọi gói TCP khác đi qua. Đây là lý do tại sao quét ACK là hữu ích. Bạn sẽ nhận được RST trong phản hồi nếu máy chủ lưu trữ. Vì bạn không biết tường lửa là gì, hãy thử cả hai.
nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24
Sau đó, tất nhiên bạn có thể sử dụng quét dựa trên ICMP với -PE -PP -PM.
Một phương pháp thú vị khác là -PO với số giao thức không tồn tại. Thường thì chỉ có TCP và UDP được xem xét trên tường lửa và không ai kiểm tra xem điều gì xảy ra khi bạn thử một số giao thức không xác định. Bạn nhận được một giao thức ICMP không thể truy cập được nếu máy chủ lưu trữ.
nmap -vvv -sn -PO160 10.1.2.0/24
Bạn cũng có thể yêu cầu nmap bỏ qua khám phá máy chủ (-Pn) và thực hiện một portscan trên mỗi máy chủ. Điều này rất chậm nhưng bạn có thể tìm thấy các máy chủ khác mà phát hiện máy chủ đã bỏ lỡ vì một số lý do.
Tôi thích ip neigh
lệnh này, đi kèm với IpRoute2.
ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE
Tuy nhiên, tôi nghĩ rằng nó chỉ hoạt động với arp
các nút có thể.
man ip
cho thấy những gì neigh -or- hàng xóm làm.
Cài đặt nmap và chạy nmap -sP <mynetwork>
.
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
.
nmap -sP 192.168.0.*
và nó đã trả về một danh sách đầu ra của mẫu:Nmap scan report for justin-desktop2 (192.168.0.61)
Host is up (0.00056s latency).
Host 192.168.2.23 is up (0.0088s latency).
.
Đối với cả hai câu trả lời: KHÔNG cần nmap / KHÔNG cần sudo .
$ arp
Xây dựng trên xenoterracides trả lời với ip neigh
và hosts
:
#!/usr/bin/env python
"""List all hosts with their IP adress of the current network."""
import os
out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
ip = line.split(' ')[0]
h = os.popen('host {}'.format(ip)).read()
hostname = h.split(' ')[-1]
print("{:>3}: {} ({})".format(i, hostname.strip(), ip))
Tải xuống qua
wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py