Сбор информации о сети

30.07.2010, рубрики: how-to | Теги: , | 5 комментариев »

networkЭта статья носит общепознавательный характер, так как для большинства, приведенные примеры не будут чем то новым, так же целью автора не является углубляться в те или иные темы, поскольку полноценную информацию об nmap, вы без труда можете найти в сети. Сбор информации о сети довольно интересное и иногда сложное занятие, в идеале вы должны обладать сильными навыками в архитектуре сетей и TCP\IP стека. Однако, даже далеко не все системные администраторы могут похвастаться такого качества знаниями. Что уж говорить когда речь идет о пользователях. Администраторы например могут сканировать свою сеть и хосты в ней, с целью обнаружения пробелов в безопасности. Любопытные просто могут совершенствовать свой навык с компьютером и сетью, злоумышленник, о них и писать не стоит, эти ребята знают что делают и без моих советов. И все таки, надеюсь эта статься будет вам интересно, в ней собраны реальные примеры, а все операции вам придется выполнять из командной строки руками, что может обогатить ваш опыт работы с Линукс, а так же, возможно вы откроете для себя что то новое.

Простой пример

Вы подключились к бесплатной Wi-Fi сети и знаете, что там точно есть интернет, но к сожалению, админы сети забыли запустить DHCP сервер. Это значит, что для того, что бы подключиться к сети и начать сёрфинг в интернет, вам необходимо собрать следующие данные:

- IP address сети
- Маска сети
- DNS сервера в сети
- Шлюз

Задача: Собрать как можно больше полезной информации о сети к которой вы подключились.

Методика

Первое, что нужно сделать, это просмотреть таблицу маршрутизации ядра в сети:

  1. booch@alexlinux:~$ netstat -r
  2.  
  3. Таблица маршрутизации ядра протокола IP
  4. Destination    Gateway      Genmask           Flags    MSS   Window irtt Iface
  5. 192.168.1.0     *                 255.255.255.0   U         0 0                     0 wlan0
  6. link-local         *                 255.255.0.0        U         0 0                     0 wlan0
  7. default         192.168.1.1     0.0.0.0               UG      0 0                     0 wlan0

где
- r – выдать хранящуюся в ядре таблицу маршрутизации

Таким образом мы получили адрес шлюза сети, это 192.168.1.1
Маску сети 255.255.255.0

Теперь не помешало бы узнать DNS, его может спалить нам шлюз:

  1. booch@alexlinux:~$ host -aT 192.168.1.1
  2. Trying "1.1.168.192.in-addr.arpa"
  3. Host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)
  4. Received 98 bytes from 80.179.52.100#53 in 14 ms

Эта команда более актуальна для доменов, но и тут результат не плохой, мы можем видеть, что первый DNS в сети это 80.179.52.100

Так же, узнать DNS в сети поможет команда:

  1. booch@alexlinux:~$ nslookup 192.168.1.1
  2. Server:     80.179.52.100
  3. Address:                80.179.52.100#53
  4. ** 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 что бы узнать свободен он или нет.

Далее откройте файл:

  1. nano /etc/network/interfaces

Впишите туда собранные данные:

  1. auto lo
  2.  
  3. iface eth0 inet static #наш интерфейс
  4. address 192.168.1.133 #указываем IP-адрес машины
  5. netmask 255.255.255.0 #указываем маску подсети
  6. gateway 192.168.1.1 #указываем шлюз

Так же не забудьте файл /etc/resolv.conf:
Пропишите там DNS сервер:

  1. nano /etc/resolv.conf
  2.  
  3. nameserver 80.179.52.100

Не забудьте, что в Убунту вам понадобиться уронить NM:

  1. /etc/init.d/network-manager stop

Рестартуем сеть:

  1. /etc/init.d/networking restart

Возможно в сети есть открытые виндозные шары, в таком случае неплохо было бы это узнать:

  1. booch@alexlinux:~$ sudo smbtree -b -N

Таким образом вы получите все данные о доступных сетевых папках и принтерах.

Сканирование

Так же полезным было бы узнать, сколько компьютеров уже подключено к сети, какие ОС они используют, какие порты на них открыты, и наконец какие IP-адреса им принадлежат.

Нам известно, что адрес сети 192.168.1.1, соответственно мы можем просветить все адреса в сети, зная что первый будет 192.168.1.1 а последний 192.168.1.254
В сканировании сети нам поможет утилита nmap.

Давайте начнем с простого:

  1. booch@alexlinux:~$ nmap 192.168.1.1-254
  2.  
  3. Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:15 IDT
  4. Interesting ports on 192.168.1.1:
  5. Not shown: 955 filtered ports, 44 closed ports
  6. PORT   STATE SERVICE
  7. 80/tcp open  http
  8.  
  9. Interesting ports on 192.168.1.100:
  10. Not shown: 996 closed ports
  11. PORT    STATE SERVICE
  12. 80/tcp  open  http
  13. 139/tcp open  netbios-ssn
  14. 777/tcp open  unknown
  15.  
  16. Interesting ports on 192.168.1.102:
  17. Not shown: 991 closed ports
  18. PORT      STATE    SERVICE
  19. 22/tcp    open     ssh
  20. 111/tcp   open     rpcbind
  21. 1151/tcp  filtered unknown
  22. 1233/tcp  filtered unknown
  23. 1501/tcp  filtered sas-3
  24. 2049/tcp  open     nfs
  25. 6006/tcp  filtered X11:6
  26. 9110/tcp  filtered unknown
  27. 10180/tcp filtered unknown
  28.  
  29. 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 часто не желают палиться, плюс некоторые компьютеры так же успешно скрывают свое пребывание в сети, прячась за файерволами и брендмаурами.

  1. booch@alexlinux:~$ sudo nmap -sP 192.168.1.1-254

-sP – scan Ping – сканнер просто опрашивает все компьютеры в сети. Вот почему iPhone не удалось закопаться, так как любое устройство отвечает на ping пакеты.

  1. Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:31 IDT
  2. Host 192.168.1.1 is up (0.0071s latency).
  3. MAC Address: 00:25:86:C0:3B:AC (Tp-link Technologies Co.)
  4. Host 192.168.1.100 is up.
  5. Host 192.168.1.101 is up (0.042s latency).
  6. MAC Address: 00:24:36:06:7D:09 (Apple)
  7. Host 192.168.1.102 is up (0.029s latency).
  8. MAC Address: 00:15:AF:E4:EC:C9 (AzureWave Technologies)
  9. 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 на борту, вы оттяпаете куда больше информации, особенно если там стоят старые версии ОС и нет фаерволлов.

Давайте теперь посмотрим сеть с другим флагом:

  1. booch@alexlinux:~$ sudo nmap -PO 192.168.1.0-254
  2.  
  3. Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:40 IDT
  4. Interesting ports on 192.168.1.1:
  5. Not shown: 955 filtered ports, 44 closed ports
  6. PORT   STATE SERVICE
  7. 80/tcp open  http
  8. MAC Address: 00:25:86:C0:3B:AC (Tp-link Technologies Co.)
  9.  
  10. Interesting ports on 192.168.1.100:
  11. Not shown: 996 closed ports
  12. PORT    STATE SERVICE
  13. 80/tcp  open  http
  14. 139/tcp open  netbios-ssn
  15. 445/tcp open  microsoft-ds
  16. 777/tcp open  unknown
  17.  
  18. All 1000 scanned ports on 192.168.1.101 are filtered
  19. MAC Address: 00:24:36:06:7D:09 (Apple)
  20.  
  21. Interesting ports on 192.168.1.102:
  22. Not shown: 997 closed ports
  23. PORT     STATE SERVICE
  24. 22/tcp   open  ssh
  25. 111/tcp  open  rpcbind
  26. 2049/tcp open  nfs
  27. MAC Address: 00:15:AF:E4:EC:C9 (AzureWave Technologies)
  28.  
  29. Nmap done: 255 IP addresses (4 hosts up) scanned in 111.96 seconds

В данном случае, флаг -PO выдал нам перекрестную информацию, т.е. ту которую мы видели просто выполнив nmap + информацию которая была получена от флага -sP. Это упрощает задачу.

Еще один интересный ключ, это -sV (scan version) он покажет вам что именно работает на доступных портах, а так же поможет определить тип ОС.

  1. booch@alexlinux:~$ sudo nmap  -sV 192.168.1.0-254
  2.  
  3. Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-29 23:55 IDT
  4. Interesting ports on 192.168.1.1:
  5. Not shown: 955 filtered ports, 44 closed ports
  6. PORT   STATE SERVICE VERSION
  7. 80/tcp open  http    TP-LINK WR641G/642G WAP http config
  8. MAC Address: 00:25:86:C0:3B:AC (Tp-link Technologies Co.)
  9. Service Info: Device: WAP
  10.  
  11. Interesting ports on 192.168.1.100:
  12. Not shown: 996 closed ports
  13. PORT    STATE SERVICE     VERSION
  14. 80/tcp  open  http        Apache httpd 2.2.14 ((Ubuntu))
  15. 139/tcp open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
  16. 445/tcp open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
  17. 777/tcp open  ssh         OpenSSH 5.3p1 Debian 3ubuntu4 (protocol 2.0)
  18. Service Info: OS: Linux
  19.  
  20. Interesting ports on 192.168.1.102:
  21. Not shown: 997 closed ports
  22. PORT     STATE SERVICE VERSION
  23. 22/tcp   open  ssh     OpenSSH 5.3p1 Debian 3ubuntu3 (protocol 2.0)
  24. 111/tcp  open  rpcbind
  25. 2049/tcp open  rpcbind
  26. MAC Address: 00:15:AF:E4:EC:C9 (AzureWave Technologies)
  27. Service Info: OS: Linux
  28.  
  29. Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
  30. 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

  1. booch@alexlinux:~$ sudo nmap  -sV ubuntu.com
  2.  
  3. Starting Nmap 5.00 ( http://nmap.org ) at 2010-07-30 00:01 IDT
  4. Interesting ports on vostok.canonical.com (91.189.94.156):
  5. Not shown: 998 filtered ports
  6. PORT   STATE SERVICE VERSION
  7. 22/tcp open  ssh     OpenSSH 4.7p1 Debian 12ubuntu1.CAT.8.04.1 (protocol 2.0)
  8. 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)
  9. Service Info: OS: Linux
  10.  
  11. Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
  12. Nmap done: 1 IP address (1 host up) scanned in 16.51 seconds

На закуску. Попробуйте поиграть с флагами и опциями, иногда очень трудно определить даже ОС удлаенного хоста, так как сис. админы не дураки и закрыли все что могли, и всё же это возможно. Например таким набором флагов:

  1. booch@alexlinux:~$ sudo nmap -O -A -T4 -v www.walla.co.il

или просто (- О – операционная система):

  1. booch@alexlinux:~$ sudo nmap -O www.walla.co.il

Так же можно попробовать сканировать наиболее популярные порты:

  1. 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 перед любой из этих утилит. Удачи!


5 комментариев на запись “Сбор информации о сети”

  1. 1 Alexander Neverov сказала в 7:59, 05.08.2010:

    спасибо, оч познавательно) у меня все руки не доходят описывать так четко то, что узнаю, работая в убунту( вроде уже и собственный бложек заве, и накрапал что то, да и по работе каждый день что то новое узнаю, а все нет времени да нет вреени(

  2. 2 Master Jedi сказала в 17:09, 07.08.2010:

    Всегда пожалуйста)

  3. 3 Прохожий сказала в 6:54, 20.08.2010:

    Есть серьёзные ошибки.
    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 пакеты.
    Это не так.

  4. 4 admin сказала в 11:42, 22.08.2010:

    Ага в нашем случае:

    >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

    то пожалуйста, но это только до рестарта, конфиг это стат, и после рестарта компа не надо будет поднимать все настройки интерфейса заново. И еще раз, стаья для новичков.

  5. 5 lm_ сказала в 2:44, 07.09.2010:

    arp


Оставить комментарий

  • Доступные теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">

  • *