내 LAN에서 사용 가능한 모든 컴퓨터 목록을 어떻게 볼 수 있습니까?
답변1
문제의 LAN에 대해 얼마나 알고 있나요? 나는 당신이 케이블을 연결하거나 WiFi에 연결하는 것에 대해 아무것도 모른다고 가정합니다.
- DHCP를 사용하여 IP 주소를 요청해 보세요. 하나 얻으시나요? 따라서 여러분은 이미 게이트웨이 IP, DHCP 서버 IP, 서브넷 마스크, DNS 서버 등 몇 가지 사항을 알고 있습니다.
- 이를 받지 못한다면 DHCP 서버가 없거나 네트워크가 MAC 필터링된 것입니다.
- 어느 쪽이든 패킷 캡처를 시작하세요.라인샤크. 무선으로 연결되어 있거나 허브에 연결되어 있으면 쉽습니다. 스위치에 연결되어 있으면 시도해 볼 수 있습니다MAC 플러딩다시 "허브 모드"로 전환하세요. 하지만 더 똑똑한 스위치는 포트를 비활성화할 뿐입니다. 그래도 해보고 싶으시다면에트캅당신을 위해 이것을 할 수 있습니다. (또는 macchanger 및 쉘 스크립트 :))
- 패킷을 보면 IP 주소를 찾을 수 있지만 가장 중요한 것은 네트워크 매개변수를 추측할 수 있다는 것입니다. MAC 필터링이 MAC 주소가 사라진 후(한동안 아무 것도 보내지 않고) 관찰된 주소 중 하나로 MAC 주소를 변경할 것이라고 의심되는 경우.
- 네트워크 구성(넷마스크, 게이트웨이 등)을 잘 파악했다면 nmap을 사용하여 스캔하세요. Nmap은
-sP
일부 호스트가 핑에 응답하지 않는 상황보다 훨씬 더 많은 일을 할 수 있습니다 (참조:문서). 중요한 것은 nmap은 네트워크 설정과 라우팅이 올바른 경우에만 작동한다는 것입니다. - nmap을 사용하면 더 많은 호스트를 찾을 수 있습니다.유휴 스캔.
일부(대부분?) 시스템 관리자는 위의 방법 중 일부를 좋아하지 않으므로 이를 허용해야 합니다(예: 이것이 귀하의 네트워크입니다). 또한 자체 방화벽이 이러한 방법 중 일부(DHCP를 통해 IP를 얻는 경우도 포함)를 차단할 수 있으므로 먼저 규칙을 확인하세요.
지도
기본적인 조작방법입니다nmap을 사용하여 호스트 검색. 내가 말했듯이, 이것을 시도하면 네트워크 구성이 정확해야 합니다. 주소가 /24 서브넷에 있는 192.168.0.50이라고 가정합니다. 귀하의 MAC 주소는 연결 등이 허용되는 주소입니다. 나는 Wireshark를 실행하여 내가 무엇을 하고 있는지 확인하는 것을 좋아합니다.
먼저, 나는 주어진 IP 주소에 대해 DNS의 PTR 레코드를 확인하려고만 시도하는 목록 검색을 시도하고 싶습니다. 호스트에 아무 것도 보내지 않으므로 실제로 연결되었거나 열려 있다는 보장은 없지만 가능성은 매우 높습니다. 이 모드에는 분명히 사용자와 대화할 DNS 서버가 필요합니다.
nmap -vvv -sn -sL 192.168.1.0/16
아무것도 찾지 못하거나 모든 IP가 작동 중이라고 알려줄 수도 있습니다.
그런 다음 보통 ARP 스캔을 수행합니다. ARP 요청을 보냅니다( "Who has <target IP>? Tell <your IP>"
wireshark에서 볼 수 있듯이). 아무도 ARP를 필터링하거나 위조하지 않으므로 이는 매우 안정적입니다. 가장 큰 단점은 서브넷에서만 작동한다는 것입니다.
nmap -vvv -sn -PR 192.168.1.0/24
라우터나 방화벽 뒤에서 검색하려면 SYN 및 ACK 검색을 사용하세요. SYN은 TCP 연결을 시작하고 이에 대한 응답으로 RST 또는 SYNACK을 받습니다. 어쨌든, 주인이 일어났습니다. 방화벽이 있는 경우 ICMP 트래픽이 차단되거나 유사한 현상이 발생할 수 있습니다. 대부분의 경우 방화벽이 패킷을 필터링하면 아무 것도 얻을 수 없습니다. 일부 유형의 방화벽은 TCP SYN 패킷만 필터링하고 다른 모든 TCP 패킷은 통과시킵니다. 이것이 ACK 스캐닝이 유용한 이유입니다. 호스트가 나타나면 RST 응답을 받게 됩니다. 어떤 방화벽이 설치되어 있는지 모르므로 둘 다 시도해 보세요.
nmap -vvv -sn -PS 10.1.2.0/24
nmap -vvv -sn -PA 10.1.2.0/24
물론 ICMP 기반 스캐닝에는 -PE -PP -PM을 사용할 수 있습니다.
또 다른 흥미로운 접근 방식은 존재하지 않는 프로토콜 번호에 -PO를 사용하는 것입니다. 일반적으로 방화벽은 TCP와 UDP만 고려하며, 알려지지 않은 프로토콜을 시도할 때 어떤 일이 발생하는지 아무도 테스트하지 않습니다. 호스트의 전원이 켜져 있으면 ICMP 프로토콜에 액세스할 수 없습니다.
nmap -vvv -sn -PO160 10.1.2.0/24
nmap에 호스트 검색(-Pn)을 건너뛰고 각 호스트에서 포트 스캔을 수행하도록 지시할 수도 있습니다. 이는 매우 느리지만 호스트가 어떤 이유로 놓친 다른 호스트를 발견할 수 있습니다.
답변2
나는 ip neigh
IpRoute2와 함께 제공되는 명령을 좋아합니다.
ip neigh
192.168.1.1 dev eth0 lladdr 00:1d:7e:f8:21:66 REACHABLE
arp
그러나 나는 그것이 -able 노드 에서만 작동한다고 생각합니다 .
답변3
설치하다지도그리고 실행하십시오 nmap -sP <mynetwork>
.
답변4
이 두 가지 답변에 대해:nmap 필요 없음 / sudo 필요 없음.
답변 1
$ arp
답변 2
xenoterracides를 기반으로 ip neigh
다음과 같이 대답하십시오 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))
다음을 통해 다운로드
wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py