Перейти к содержимому
Калькуляторы

LLTD scanner for Linux/FreeBSD используем “ответчик обнаружения топологии канального уровня” во благо

Собственно, написал утилитку для обнаружения в сети юзеров, которых ни пингом, ни arping-ом обнаружить не получается.

Например, когда абонент сбил настройки.

Позволяет увидеть машину абонента по маку, даже если у него прописан совершенно левый айпишник

(arping по маку не предлагать! ибо на ICMP broadcast вообще никто не отвечает)

 

пример работы:

#./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

 

#lltdscan -i vlan112
interface vlan234
109 bytes from 00:e0:4c:4c:23:32 (192.168.18.2 ): time=300 ms name="pc2009"
127 bytes from 00:1d:60:35:ad:dd (192.168.13.4 ): time=601 ms name="microsof-11798c"
105 bytes from 00:0e:a6:bb:11:22 (192.168.11.8 ): time=601 ms name="kkkk"
109 bytes from 00:01:6c:b7:33:55 (192.168.33.8 ): time=623 ms name="pc2009"
115 bytes from 4c:00:10:00:f1:64 (192.168.19.46): time=903 ms name="zemlyanka"
127 bytes from 00:1f:c6:e9:19:31 (192.168.18.58): time=932 ms name="microsof-2fa310"
107 bytes from 00:e0:4c:15:49:5e (192.168.18.8 ): time=950 ms name="w0r5t"
127 bytes from 00:c0:9f:b3:53:58 (192.168.78.06): time=952 ms name="rgzkv6snijlrhln"
127 bytes from 00:0c:76:cc:52:5b (192.168.35.12): time=990 ms name="microsof-34de4d"
found 9 hosts in 3.101 seconds

 

предыстория и некоторые подробности тут: lltd scanner

код утилиты тут: http://github.com/zed-0xff/lltdscan

 

UPD: если программа понравилась, плюсание плз карму на хабре - http://zed-0xff.habrahabr.ru/ а то не хватает там разместить.

Изменено пользователем zed_0xff

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Жаль только Vista и Windows 7.

А так - классная утилита!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Жаль только Vista и Windows 7.

А так - классная утилита!

XP тоже.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Потестим, спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

XP только если поставить вручную клиента, насколько я знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знаю как в других XP, но в Professional SP3 в компонентах сетевого подключения имеется

[v] Ответчик обнаружения топологии уровня связи

 

Ну и собственно lltdscan такой компьютер находит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

какая п'глесть

только у меня всё кроме 800 и 806 убито.

и это правильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо за наводку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не хотит собираться:

 make
gcc -g -I/usr/local/include -I/usr/local/include/libnet-1.1 -I/usr/include/pcap                                   -I/usr/local/include/libnet11 -g -L/usr/local/lib -L/usr/local/lib/libnet-1.1 -L                                  /opt/csw/lib -L/usr/local/lib/libnet11 -o lltdscan lltdscan.c -lnet -lpcap -lrt
lltdscan.c:5:20: error: libnet.h: No such file or directory
In file included from lltdscan.c:7:
lltd.c: In function 'lltd_dump_tlv':
lltd.c:18: warning: incompatible implicit declaration of built-in function 'strc                                  at'
lltd.c:24: warning: incompatible implicit declaration of built-in function 'strl                                  en'
lltd.c:28: warning: incompatible implicit declaration of built-in function 'strc                                  py'
lltd.c:48: warning: incompatible implicit declaration of built-in function 'strl                                  en'
lltdscan.c: At top level:
lltdscan.c:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'h                                  osts'
lltdscan.c: In function 'got_packet':
lltdscan.c:51: error: 'uint64_t' undeclared (first use in this function)
lltdscan.c:51: error: (Each undeclared identifier is reported only once
lltdscan.c:51: error: for each function it appears in.)
lltdscan.c:51: error: expected ';' before 'host_id'
lltdscan.c:56: warning: incompatible implicit declaration of built-in function '                                  memcpy'
lltdscan.c:56: error: 'host_id' undeclared (first use in this function)
lltdscan.c:59: error: 'hosts' undeclared (first use in this function)
lltdscan.c: In function 'main':
lltdscan.c:119: error: 'libnet_t' undeclared (first use in this function)
lltdscan.c:119: error: 'l' undeclared (first use in this function)
lltdscan.c:120: error: 'libnet_ptag_t' undeclared (first use in this function)
lltdscan.c:120: error: expected ';' before 'eth_ptag'
lltdscan.c:124: warning: incompatible implicit declaration of built-in function                                   'memset'
lltdscan.c:130: error: 'optarg' undeclared (first use in this function)
lltdscan.c:147: warning: incompatible implicit declaration of built-in function                                   'exit'
lltdscan.c:147: error: 'EXIT_SUCCESS' undeclared (first use in this function)
lltdscan.c:149: error: 'EXIT_FAILURE' undeclared (first use in this function)
lltdscan.c:152: error: 'optind' undeclared (first use in this function)
lltdscan.c:156: warning: incompatible implicit declaration of built-in function                                   'exit'
lltdscan.c:159: warning: incompatible implicit declaration of built-in function                                   'strlen'
lltdscan.c:161: warning: incompatible implicit declaration of built-in function                                   'exit'
lltdscan.c:176: error: 'LIBNET_LINK' undeclared (first use in this function)
lltdscan.c:179: warning: incompatible implicit declaration of built-in function                                   'exit'
lltdscan.c:190: warning: cast to pointer from integer of different size
lltdscan.c:192: warning: incompatible implicit declaration of built-in function                                   'exit'
lltdscan.c:199: warning: incompatible implicit declaration of built-in function                                   'memcpy'
lltdscan.c:205: error: 'eth_ptag' undeclared (first use in this function)
lltdscan.c:216: warning: incompatible implicit declaration of built-in function                                   'exit'
lltdscan.c:226: warning: incompatible implicit declaration of built-in function                                   'exit'
make: *** [lltdscan] Error 1

 

В чем может быть проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lltdscan.c:5:20: error: libnet.h: No such file or directory

Разве не в этом проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а не легче ли со свича FDB таблицу по влану получить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

hiller, установите пакеты libnet* (libnet-devel, libnet-headers если есть)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[root@t0ly-wrk ~/Soft/lltdscan/zed-0xff-lltdscan-939327bfe3b0655a5b83835acc5cd145131ea0ae]# gmake

gcc -g -I/usr/local/include -I/usr/local/include/libnet-1.1 -I/usr/include/pcap -I/usr/local/include/libnet11 -I/usr/local/include/libnet113 -g -L/usr/local/lib -L/usr/local/lib/libnet-1.1 -L/opt/csw/lib -L/usr/local/lib/libnet11 -o lltdscan lltdscan.c -lnet -lpcap -lrt

/usr/bin/ld: cannot find -lnet

gmake: *** [lltdscan] Ошибка 1

[root@t0ly-wrk ~/Soft/lltdscan/zed-0xff-lltdscan-939327bfe3b0655a5b83835acc5cd145131ea0ae]# ldconfig -r|grep '\:\-lnet'

47:-lnetgraph.3 => /usr/lib/libnetgraph.so.3

186:-lnetsnmp.16 => /usr/local/lib/libnetsnmp.so.16

187:-lnetsnmpagent.16 => /usr/local/lib/libnetsnmpagent.so.16

188:-lnetsnmptrapd.16 => /usr/local/lib/libnetsnmptrapd.so.16

249:-lnetsnmphelpers.16 => /usr/local/lib/libnetsnmphelpers.so.16

250:-lnetsnmpmibs.16 => /usr/local/lib/libnetsnmpmibs.so.16

771:-lnet-1.1.3.1 => /usr/local/lib/libnet-1.1.3.so.1

1033:-lnetgraph.1 => /usr/local/lib/compat/libnetgraph.so.1

1113:-lnetgraph.2 => /usr/local/lib/compat/libnetgraph.so.2

1194:-lnet.1 => /usr/local/lib/libnet113/libnet.so.1

[root@t0ly-wrk ~/Soft/lltdscan/zed-0xff-lltdscan-939327bfe3b0655a5b83835acc5cd145131ea0ae]#

Изменено пользователем t0ly

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

t0ly, попробуйте так:

cc -g -I/usr/local/include -I/usr/local/include/libnet-1.1 -I/usr/include/pcap -I/usr/local/include/libnet11 -I/usr/local/include/libnet113 -g -L/usr/local/lib -L/usr/local/lib/libnet-1.1 -L/opt/csw/lib -L/usr/local/lib/libnet11 -L /usr/local/lib/libnet113 -o lltdscan lltdscan.c -lnet -lpcap -lrt

 

и сообщите о результате

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

hiller, установите пакеты libnet* (libnet-devel, libnet-headers если есть)

Блин, сам дурак, просмотрел... Поставил -devel, все собралось. Спасибо за помощь и за программу :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Заметил одно интересное ограничение/странность в реализации протокола LLTDP на Windows XP, а может и на всех остальных виндюках - тоже.

 

 

Есть компьютер, который имеет несколько адресов на одной сетевушке, в результате сканирования мы видем только один из установленных на нем адресов, но вопреки логике, не тот, с которого компьютер ходит по default route, а вообше "левый".

 

 

interface ge0
115 bytes from 00:19:21:3f:f2:68 (10.90.90.144   ): time=570 ms name="buhgalter"
     Host ID: 00 19 21 3f f2 68
    Charact.: 00 00 00 00
       Media: 00 00 00 06       (Ethernet)
        IPv4: 0a 5a 5a 90
   Perf.cntr: 00 00 00 00 00 36 9e 99
  Link speed: 100 Mbit/s
        Name: 62 00 75 00 68 00 67 00 61 00 6c 00 74 00 65 00 72 00
         QoS: 00 00 00 00

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть компьютер, который имеет несколько адресов на одной сетевушке, в результате сканирования мы видем только один из установленных на нем адресов, но вопреки логике, не тот, с которого компьютер ходит по default route, а вообше "левый".

Все правильно, в спецификации протокола написано что возвращается либо "белый" айпишник (если есть), либо "первый попавшийся серый" (вольный перевод :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

t0ly, попробуйте так:

cc -g -I/usr/local/include -I/usr/local/include/libnet-1.1 -I/usr/include/pcap -I/usr/local/include/libnet11 -I/usr/local/include/libnet113 -g -L/usr/local/lib -L/usr/local/lib/libnet-1.1 -L/opt/csw/lib -L/usr/local/lib/libnet11 -L /usr/local/lib/libnet113 -o lltdscan lltdscan.c -lnet -lpcap -lrt

 

и сообщите о результате

собралось

спасибо

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

собралось

спасибо

отлично! добавлю в мэйкфайл

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.