zed.0xff.me

Заметки о линуксе, Ruby, Rails & so on.

LLTD scanner for Linux/FreeBSD

(или используем “ответчик обнаружения топологии канального уровня” в своих интересах)

Факт первый:
Не так давно стал замечать в настройках сети машин под виндой новые строчки, связанные с топологией сети. Ну как бы новые и ладно, вроде не мешают. Тем более что виндой сам не пользуюсь.. :)

Факт второй:
Есть такая полезная утилита arping, которая позволяет пинговать машины в сети по протоколу ARP (и не только). Но. Но пинговать машины мы можем только если у них уже настроен IP-адрес. Т.е. это спасает от, допустим, неверно настроенной маски, или там DNS, или фаервола. Но не более.
Заманчиво иметь такую утилиту, которой можно было бы “пинговать” машину пользователя, даже если у него все настройки пропали или потерялись, или “племянница приходила”.. ;)
arping 2.х вроде бы такую возможность имеет, надо только знать MAC-адрес машины:

arping -i em0 11:22:33:44:55:66
Но умеет, да не совсем. При этом на указанный мак посылается всего лишь широковещательный ICMP запрос.. и я пока среди окружающих машин не увидел ни одной, которая бы на него ответила..
Везде ответы на широковещательные пинги запрещены.. :(

А теперь – совмещаем факты :)
Удивительно, но Microsoft в этот раз своим внедрением нового протокола сыграл нам на руку :)
Протокол LLTD как раз и нужен для того чтобы обнаруживать в локалке машины не зависимо от их ipv4/ipv6/ipx адресов.
При посылке одной из машин в сеть специального магического пакета – все остальные (естественно, где этот протокол установлен и включен) сразу же отзываются, радостно сообщая свой айпишник(!), сетевое имя, мак, ну и разные флаги.
Спецификация на протокол открыта.

Собственно, за пару дней и была написана утилита lltdscan.
Взять можно на http://github.com/zed-0xff/lltdscan
Вот примеры работы:

1
2
3
4
#sudo ./lltdscan -t1300             
interface eth0
101 bytes from 00:01:33:ed:54:a1 (192.168.123.12 ): time=929 ms name="XZ"
found 1 hosts in 1.303 seconds
1
2
3
4
5
6
7
8
9
10
11
12
#sudo ./lltdscan -t1300 -v          
interface eth0
101 bytes from 00:01:33:ed:54:a1 (192.168.123.12 ): time=929 ms name="XZ"
     Host ID: 00 01 ee ff 22 a1 
    Charact.: 20 00 00 00       (full-duplex)
       Media: 00 00 00 06       (Ethernet)
   Perf.cntr: 00 00 00 00 00 36 9e 99 
  Link speed: 100 Mbit/s
        Name: 31 00 43 00 
         QoS: 60 00 00 00       (802.1q-support, 802.1p-support)

found 1 hosts in 1.302 seconds
  1. nal's Gravatar nal says:

    интересная утила, может добавить в колекцию портов FreeBSD?

  2. pavlinux's Gravatar pavlinux says:

    Клёвенько, тока бы ещё autotools приклеить и libnet в этот проект перетянуть.

  3. bart's Gravatar bart says:

    Настораживает команда sudo...

  4. pavlinux's Gravatar pavlinux says:

    В общем, респект за идею, ужос за исходный код !

  5. pavlinux's Gravatar pavlinux says:

    Них..я оно не работает

    192.168.1.192 - бука с Вендой

    1. arp -a видит

    amd64:/usr/src/lltdscan # arp -a
    ? (192.168.1.1) at 00:19:5b:c1:da:97 [ether] on eth0
    ? (192.168.1.129) at 08:00:27:8f:9c:e3 [ether] on eth0

    2. Сделал шару, её видно.

    amd64:/usr/src/lltdscan # smbclient -L 192.168.1.129
    Enter pavel's password:
    Domain=[VS-4297F2DEE9D8] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]

    Sharename Type Comment
    --------- ---- -------
    Мои документы Disk
    IPC$ IPC Удаленный IPC
    ADMIN$ Disk Удаленный Admin
    C$ Disk Стандартный общий ресурс
    session request to 192.168.1.129 failed (Called name not present)
    session request to 192 failed (Called name not present)
    session request to *SMBSERVER failed (Called name not present)
    NetBIOS over TCP disabled -- no workgroup available

    amd64:/usr/src/lltdscan # ./lltdscan -t1300 -vv 08:00:27:8f:9c:e3
    interface eth0
    found 0 hosts in 1.308 seconds, but '08:00:27:8f:9c:e3' is not found.

    amd64:/usr/src/lltdscan # ./lltdscan -t1300 -vv
    interface eth0
    found 0 hosts in 1.311 seconds

  6. x0r's Gravatar x0r says:

    на XP надо ставить пакет LLTD.

  7. x0r's Gravatar x0r says:

    а топологию можно по этому построить?
    еще и сервак написать...

Post a comment


(lesstile enabled - surround code blocks with ---)