Сбор информации о сети
30.07.2010, рубрики: how-to | Теги: network, program | 5 комментариев »
Эта статья носит общепознавательный характер, так как для большинства, приведенные примеры не будут чем то новым, так же целью автора не является углубляться в те или иные темы, поскольку полноценную информацию об nmap, вы без труда можете найти в сети. Сбор информации о сети довольно интересное и иногда сложное занятие, в идеале вы должны обладать сильными навыками в архитектуре сетей и TCP\IP стека. Однако, даже далеко не все системные администраторы могут похвастаться такого качества знаниями. Что уж говорить когда речь идет о пользователях. Администраторы например могут сканировать свою сеть и хосты в ней, с целью обнаружения пробелов в безопасности. Любопытные просто могут совершенствовать свой навык с компьютером и сетью, злоумышленник, о них и писать не стоит, эти ребята знают что делают и без моих советов. И все таки, надеюсь эта статься будет вам интересно, в ней собраны реальные примеры, а все операции вам придется выполнять из командной строки руками, что может обогатить ваш опыт работы с Линукс, а так же, возможно вы откроете для себя что то новое.
Простой пример
Вы подключились к бесплатной Wi-Fi сети и знаете, что там точно есть интернет, но к сожалению, админы сети забыли запустить DHCP сервер. Это значит, что для того, что бы подключиться к сети и начать сёрфинг в интернет, вам необходимо собрать следующие данные:
- IP address сети
- Маска сети
- DNS сервера в сети
- Шлюз
Задача: Собрать как можно больше полезной информации о сети к которой вы подключились.
Методика
Первое, что нужно сделать, это просмотреть таблицу маршрутизации ядра в сети:
- booch@alexlinux:~$ netstat -r
- Таблица маршрутизации ядра протокола IP
- Destination Gateway Genmask Flags MSS Window irtt Iface
- 192.168.1.0 * 255.255.255.0 U 0 0 0 wlan0
- link-local * 255.255.0.0 U 0 0 0 wlan0
- default 192.168.1.1 0.0.0.0 UG 0 0 0 wlan0
где
- r – выдать хранящуюся в ядре таблицу маршрутизации
Таким образом мы получили адрес шлюза сети, это 192.168.1.1
Маску сети 255.255.255.0
Теперь не помешало бы узнать DNS, его может спалить нам шлюз:
- booch@alexlinux:~$ host -aT 192.168.1.1
- Trying "1.1.168.192.in-addr.arpa"
- Host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)
- Received 98 bytes from 80.179.52.100#53 in 14 ms
Эта команда более актуальна для доменов, но и тут результат не плохой, мы можем видеть, что первый DNS в сети это 80.179.52.100
Так же, узнать DNS в сети поможет команда:
- booch@alexlinux:~$ nslookup 192.168.1.1
- Server: 80.179.52.100
- Address: 80.179.52.100#53
- ** server can't find 1.1.168.192.in-addr.arpa.: NXDOMAIN
Данные которые мы получили:
IP-адрес сети: 192.168.1.0
Маска сети: 255.255.255.0
Шлюз: 192.168.1.1
DNS сервер: 80.179.52.100
Теперь вы можете смело подключать к сети.
Пропингуйте любой адрес сети, типа 192.168.1.133 что бы узнать свободен он или нет.
Далее откройте файл:
- nano /etc/network/interfaces
Впишите туда собранные данные:
- auto lo
- iface eth0 inet static #наш интерфейс
- address 192.168.1.133 #указываем IP-адрес машины
- netmask 255.255.255.0 #указываем маску подсети
- gateway 192.168.1.1 #указываем шлюз
Так же не забудьте файл /etc/resolv.conf:
Пропишите там DNS сервер:
- nano /etc/resolv.conf
- nameserver 80.179.52.100
Не забудьте, что в Убунту вам понадобиться уронить NM:
- /etc/init.d/network-manager stop
Рестартуем сеть:
- /etc/init.d/networking restart
Возможно в сети есть открытые виндозные шары, в таком случае неплохо было бы это узнать:
- booch@alexlinux:~$ sudo smbtree -b -N
Таким образом вы получите все данные о доступных сетевых папках и принтерах.
Сканирование
Так же полезным было бы узнать, сколько компьютеров уже подключено к сети, какие ОС они используют, какие порты на них открыты, и наконец какие IP-адреса им принадлежат.
Нам известно, что адрес сети 192.168.1.1, соответственно мы можем просветить все адреса в сети, зная что первый будет 192.168.1.1 а последний 192.168.1.254
В сканировании сети нам поможет утилита nmap.
Давайте начнем с простого:
- booch@alexlinux:~$ nmap 192.168.1.1-254
- Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:15 IDT
- Interesting ports on 192.168.1.1:
- Not shown: 955 filtered ports, 44 closed ports
- PORT STATE SERVICE
- 80/tcp open http
- Interesting ports on 192.168.1.100:
- Not shown: 996 closed ports
- PORT STATE SERVICE
- 80/tcp open http
- 139/tcp open netbios-ssn
- 777/tcp open unknown
- Interesting ports on 192.168.1.102:
- Not shown: 991 closed ports
- PORT STATE SERVICE
- 22/tcp open ssh
- 111/tcp open rpcbind
- 1151/tcp filtered unknown
- 1233/tcp filtered unknown
- 1501/tcp filtered sas-3
- 2049/tcp open nfs
- 6006/tcp filtered X11:6
- 9110/tcp filtered unknown
- 10180/tcp filtered unknown
- Nmap done: 254 IP addresses (3 hosts up) scanned in 54.73 seconds
Как мы можем видеть, результат не плох, но и не точен. Забегая вперед скажу, что в сети на самом деле подключены 4 устройства, это:
192.168.1.1 – роутер
192.168.1.100 – головной компьютер
192.168.1.101 – телефон iPhone
192.168.1.102 – нетбук
Как видно из листинга nmap обнаружил всего три устройства с адресами: 192.168.1.1, 192.168.1.100, 192.168.1.102
iPhone – остался не замеченным.
Зато мы получили список открытых портов и служб запущенных на них.
Давайте теперь покопаемся немного глубже в сети и попробуем всё таки определеть все устройства, так например компьютеры на которых установлен Antivirus Kaspersky часто не желают палиться, плюс некоторые компьютеры так же успешно скрывают свое пребывание в сети, прячась за файерволами и брендмаурами.
- booch@alexlinux:~$ sudo nmap -sP 192.168.1.1-254
-sP – scan Ping – сканнер просто опрашивает все компьютеры в сети. Вот почему iPhone не удалось закопаться, так как любое устройство отвечает на ping пакеты.
- Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:31 IDT
- Host 192.168.1.1 is up (0.0071s latency).
- MAC Address: 00:25:86:C0:3B:AC (Tp-link Technologies Co.)
- Host 192.168.1.100 is up.
- Host 192.168.1.101 is up (0.042s latency).
- MAC Address: 00:24:36:06:7D:09 (Apple)
- Host 192.168.1.102 is up (0.029s latency).
- MAC Address: 00:15:AF:E4:EC:C9 (AzureWave Technologies)
- Nmap done: 254 IP addresses (4 hosts up) scanned in 6.68 seconds
О! Как видите в этот раз улов куда гораздо лучше. Благодаря ключу -sP мы увидели все устройства сети, включая хитрый iPhone. Мы узнали IP-адрес каждого из них, а так же MAC-адрес каждого устройства.
Мало того, ненасытный nmap спал нам вендоров, и как видите в данном случае не спалился только ноутбук под управлением системы Ubuntu 10.04 так как никакой информации мы о нем не получили, зато для устройства с адресом 192.168.1.1 мы видем Tp-link Technologies Co, сразу становиться понятно, что это.
В случае с нетбуком, мы увидели лишь производителя сетевухи, но это уже не плохо. Поверьте, выполнив эту команду в сети, где есть устройства с Windows на борту, вы оттяпаете куда больше информации, особенно если там стоят старые версии ОС и нет фаерволлов.
Давайте теперь посмотрим сеть с другим флагом:
- booch@alexlinux:~$ sudo nmap -PO 192.168.1.0-254
- Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:40 IDT
- Interesting ports on 192.168.1.1:
- Not shown: 955 filtered ports, 44 closed ports
- PORT STATE SERVICE
- 80/tcp open http
- MAC Address: 00:25:86:C0:3B:AC (Tp-link Technologies Co.)
- Interesting ports on 192.168.1.100:
- Not shown: 996 closed ports
- PORT STATE SERVICE
- 80/tcp open http
- 139/tcp open netbios-ssn
- 445/tcp open microsoft-ds
- 777/tcp open unknown
- All 1000 scanned ports on 192.168.1.101 are filtered
- MAC Address: 00:24:36:06:7D:09 (Apple)
- Interesting ports on 192.168.1.102:
- Not shown: 997 closed ports
- PORT STATE SERVICE
- 22/tcp open ssh
- 111/tcp open rpcbind
- 2049/tcp open nfs
- MAC Address: 00:15:AF:E4:EC:C9 (AzureWave Technologies)
- Nmap done: 255 IP addresses (4 hosts up) scanned in 111.96 seconds
В данном случае, флаг -PO выдал нам перекрестную информацию, т.е. ту которую мы видели просто выполнив nmap + информацию которая была получена от флага -sP. Это упрощает задачу.
Еще один интересный ключ, это -sV (scan version) он покажет вам что именно работает на доступных портах, а так же поможет определить тип ОС.
- booch@alexlinux:~$ sudo nmap -sV 192.168.1.0-254
- Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:55 IDT
- Interesting ports on 192.168.1.1:
- Not shown: 955 filtered ports, 44 closed ports
- PORT STATE SERVICE VERSION
- 80/tcp open http TP-LINK WR641G/642G WAP http config
- MAC Address: 00:25:86:C0:3B:AC (Tp-link Technologies Co.)
- Service Info: Device: WAP
- Interesting ports on 192.168.1.100:
- Not shown: 996 closed ports
- PORT STATE SERVICE VERSION
- 80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
- 139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
- 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
- 777/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu4 (protocol 2.0)
- Service Info: OS: Linux
- Interesting ports on 192.168.1.102:
- Not shown: 997 closed ports
- PORT STATE SERVICE VERSION
- 22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu3 (protocol 2.0)
- 111/tcp open rpcbind
- 2049/tcp open rpcbind
- MAC Address: 00:15:AF:E4:EC:C9 (AzureWave Technologies)
- Service Info: OS: Linux
- Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
- Nmap done: 255 IP addresses (3 hosts up) scanned in 37.81 seconds
Посмотрите сколько информации мне удалось скасить для Линукс машин под завязку загруженными такими сервисами как: Apache, SSH, NFS, Samba, rdesktop, MySQL, cups and other.
И снова, уверяю вас, после сканирования Windows машины урожай будет много больше и интереснее.
А вот например результат сканирования сайта ubuntu.com
- booch@alexlinux:~$ sudo nmap -sV ubuntu.com
- Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-30 00:01 IDT
- Interesting ports on vostok.canonical.com (91.189.94.156):
- Not shown: 998 filtered ports
- PORT STATE SERVICE VERSION
- 22/tcp open ssh OpenSSH 4.7p1 Debian 12ubuntu1.CAT.8.04.1 (protocol 2.0)
- 80/tcp open http Apache httpd 2.2.8 ((Ubuntu) mod_python/3.3.1 Python/2.5.2 mod_ssl/2.2.8 OpenSSL/0.9.8g)
- Service Info: OS: Linux
- Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
- Nmap done: 1 IP address (1 host up) scanned in 16.51 seconds
На закуску. Попробуйте поиграть с флагами и опциями, иногда очень трудно определить даже ОС удлаенного хоста, так как сис. админы не дураки и закрыли все что могли, и всё же это возможно. Например таким набором флагов:
- booch@alexlinux:~$ sudo nmap -O -A -T4 -v www.walla.co.il
или просто (- О – операционная система):
- booch@alexlinux:~$ sudo nmap -O www.walla.co.il
Так же можно попробовать сканировать наиболее популярные порты:
- sudo nmap -sX -p 22,53,110,143,4564 walla.co.il
Полезные сетевые утилиты
Для сканирования и изучения сети у вас есть целый буект инструментов, таких как:
- ping
- host
- nslookup
- traceroute
- mtr
- nmap
- netstat
- smbtree
- ifconfig
Для беспроводных сетей:
- iwlist
- iwconfig
Так же можно юзать утилиты анализаторы:
- wireshark
- trawshow
- iptraf
- tcpdump
Все программы доступны из репозиториев и просты в использовании. Получить много информации и знаний вы так же сможете набрав man перед любой из этих утилит. Удачи!


спасибо, оч познавательно) у меня все руки не доходят описывать так четко то, что узнаю, работая в убунту( вроде уже и собственный бложек заве, и накрапал что то, да и по работе каждый день что то новое узнаю, а все нет времени да нет вреени(
Всегда пожалуйста)
Есть серьёзные ошибки.
1)netstat -r
Перепутаны причина и следствие, команда показала вам шлюз, только потому, что сетевое подключение( включая шлюз) уже настроено.
2)Пропингуйте любой адрес сети, типа 192.168.1.133 что бы узнать свободен он или нет
Что-бы пропинговать какой-либо адрес в сети, необходимо уже иметь адрес,назначение себе адреса от балды, может привести к конфликту в сети.
Нанчать себе адрес и т.д. подключившись к «какой-то Wi-Fi сети» /МХО/обней из коммандной строки, а не редактированием конфигов и перезапуском сервисов(учим iproute2 и echo).
4)Нам известно, что адрес сети 192.168.1.1
Всё-же адрес сети 192.168.1.0 в данном контексте. Задать этот диапазон адресов можно используя маску(так кошернее) 192.168.1.0/24 и на одну цифру короче =).
5)любое устройство отвечает на ping пакеты.
Это не так.
Ага в нашем случае:
>1)netstat -r
>Перепутаны причина и следствие, команда показала вам шлюз, >только потому, что сетевое подключение( включая шлюз) уже
>настроено.
Если шлюз не настроен, он нам нафиг не нужен, на крайний случай: #nmap 0.0.0.0-254 ключи прилогаются.
>2)Пропингуйте любой адрес сети, типа 192.168.1.133 что бы >узнать свободен он или нет
>Что-бы пропинговать какой-либо адрес в сети, необходимо уже >иметь адрес,назначение себе адреса от балды, может привести к >конфликту в сети.
>конфигов и перезапуском сервисов(учим iproute2 и echo).
Наверно вы крайне не внимательный читатель:
sudo nmap -sP 192.168.1.1-254 покажет все устройства в сети. конфликт IP возникает только у Линукс VS Windows 98\XP
>4)Нам известно, что адрес сети 192.168.1.1
>Всё-же адрес сети 192.168.1.0 в данном контексте.
Это правильно, опечатка, исправил.
>Задать этот диапазон адресов можно используя маску(так >кошернее) 192.168.1.0/24 и на одну цифру короче =).
да только это статья для новичков, по этому я считаю в данном случае 255.255.255.0 понятнее для народа. не каждый учил в универе «архитектуру сетей»
>Нанчать себе адрес и т.д. подключившись к «какой-то Wi-Fi >сети» /МХО/обней из коммандной строки, а не редактированием
Если вы про это:
# ifconfig eth0 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255
Или про это:
# iwconfig wlan0 mode Ad-Hoc channel 1 essid myNetwork
то пожалуйста, но это только до рестарта, конфиг это стат, и после рестарта компа не надо будет поднимать все настройки интерфейса заново. И еще раз, стаья для новичков.
arp