Представьте, что у вас в руках оказалась неизвестная (или известная, но забытая) железка, которой вы очень хотите поуправлять, но для управления требуется знать её IP-адрес (например, для входа через web-интерфейс или telnet). А железка 100 лет провалялась на складе / вам её подарили / вы другим образом забыли настройки IP. Как быть? Лучший вариант решения этой проблемы - чтение документации. Там обычно есть и настройки IP по умолчанию, и описываются способы сброса до заводстких настроек. Возможно, устройство имеет порт для подключения последовательного терминала. В этом случае ваши шансы на успех равны 95%, 5% остаются на неисправность консольного порта и кривоту документации. Но что делать, если документация писана криворукими индокитайцами или отсутствует вовсе, а железка относится к той категории, в которой и говорить о консольном порту неприлично? Как везде, тут есть 2 способа: активный и пассивный. Начнём с пассивного, он проще и быстрее. Нам поможет tcpdump. Подключаетесь напрямую к сетевому порту устройства и натравливаете tcpdump -vn на соответствующий интерфейс. Варианты могут быть следующими:
Могут быть и другие варианты, но все они сводятся к предыдущим: либо мультикаст, либо броадкаст, другого не дано, уникасты вы не перехватите, потому что им взяться неоткуда. Если пассивный метод не помогает, приходится переходить к активному. В случае IPv4 активный метод может дать гарантированный результат за приемлемое время (а чего вы хотели? Не помогает анализ - остаётся только полный перебор). В случае IPv6 множество вариантов существенно мощнее, поэтому предлагаемый метод не сработает. Предлагаемый метод будет более эффективным, если можно сделать какие-то предположения об IP-адресе. Так, например, для популярного частного диапазона 192.168.0.0/16 можно использовать следующий сценарий: #!/bin/sh ifconfig eth0 192.168.0.1 netmask 255.255.0.0 nmap -sP 192.168.0-255.2-254 | grep up
В данном сценарии используется протокол ARP для поиска соседей по локальной сети. Естественно, чем менее точно вы можете сделать предположение об адресе, тем большее множество адресов придётся перебирать. В худшем случае придётся делать полный перебор. Не забывайте, что в этом случае перед сканированием вам надо будет сменить IP-адрес устройства так, чтобы этот адрес принадлежал опрашиваемому на данной итерации диапазону.. |
Блог >