Có thể - ít nhất, trong trường hợp phổ biến, nơi mạng kiểu NAT được cấu hình cho khách. Vì VMWare đang cung cấp NAT-ing, nên nó có thể cho chúng tôi biết, địa chỉ hiện tại nó đang được NAT cung cấp. Một cái gì đó giống như vmrun list
nên xuất ra thông tin này. Rằng nó không phải là một lỗ hổng ...
Nhưng, trong mọi trường hợp, đây là cách người ta có thể tìm ra bằng mọi cách. Đầu tiên, chạy ifconfig
trên máy Mac của bạn (có lẽ, ipconfig
sẽ làm tương tự trên Windows, nhưng tôi chưa thử nghiệm nó). Điều này sẽ liệt kê tất cả các giao diện mạng trên máy - cả vật lý và ảo. Hãy tìm những người vmnet. Trên máy Mac của tôi, nó tạo ra:
% ifconfig | grep -A2 ^vmnet
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01
inet 192.168.82.1 netmask 0xffffff00 broadcast 192.168.82.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08
inet 192.168.123.1 netmask 0xffffff00 broadcast 192.168.123.255
Vì vậy, IP khách của tôi nằm trên một trong hai mạng riêng VM này: 192.168.82.0/24 hoặc 192.168.123.0/24. Trên máy chủ của bạn có thể chỉ có một, may mắn cho bạn hoặc hơn hai - chúng tôi cần kiểm tra tất cả. Đây là một tập lệnh tcsh rất đơn giản, được nhập trực tiếp trên dòng lệnh, nó đã làm điều đó cho tôi. Nó cố gắng ping từng địa chỉ trong tất cả các mạng riêng lớp C được quản lý bởi vmnet và kết thúc, khi ping thành công. Các -W 500
tùy chọn cho ping để chờ chỉ nửa giây cho một phản ứng (có thể, có lẽ, sử dụng thậm chí ít hơn), và -c 1
nói với nó để gửi đúng một gói:
% set i=2
% while ( $i < 255 )
while? ping -W 500 -c 1 192.168.82.$i && break
while? ping -W 500 -c 1 192.168.123.$i && break
while? @ i++
while? end
Kịch bản nhỏ ở trên đã chạy trong một thời gian liệt kê tất cả các nỗ lực không thành công để đạt được các địa chỉ không tồn tại:
PING 192.168.82.2 (192.168.82.2): 56 data bytes
--- 192.168.82.2 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
PING 192.168.123.2 (192.168.123.2): 56 data bytes
...
Cho đến khi cuối cùng nó đã thành công và kết thúc:
64 bytes from 192.168.123.130: icmp_seq=0 ttl=64 time=0.307 ms
--- 192.168.123.130 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
Voilà, tôi đã có thể ssh vào khách của tôi:
% ssh 192.168.123.130
Password:
Bây giờ, tôi chỉ có một khách duy nhất đang chạy - vì vậy địa chỉ IP đầu tiên phản hồi ping là đúng. Nếu bạn chạy nhiều khách cùng một lúc, bạn có thể cần sử dụng lệnh ping tương tự hoặc tương tự để tạo danh sách tất cả các địa chỉ IP riêng hợp lệ như vậy và sau đó thử tất cả chúng cho đến khi bạn vào đúng khách ...
(Và, có lẽ, .30 là một dự đoán tốt cho các địa chỉ dựa trên NAT. Nhưng tôi không thể nói chắc chắn được.)