сканирование сети.

Тема в разделе "WASM.NETWORKS", создана пользователем gevara, 30 мар 2007.

  1. gevara

    gevara максим

    Публикаций:
    0
    Регистрация:
    10 ноя 2006
    Сообщения:
    112
    Адрес:
    г. Пермь
    допустим мне нужно найти в сети HTTP сервер. насколько эффективно сканировать сеть обычным connect на 80 порт? или есть более разумные способы, скажем сначала просканировать сеть ICMP запросами - получить набор IP адресов, а уже потом на каждый из этих IP коннектиться на 80 порт.
     
  2. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    сам понимаешь что пинг может резаться (конечно в нормальных сетях такое редкость, а вот в студенческих общагах обычное дело, хотя в таких сетях и веб серверов почти нет, всё на ftp или smb), так что imho многопоточный коннек на 80-й оптимальный (единственный) вариант
     
  3. gevara

    gevara максим

    Публикаций:
    0
    Регистрация:
    10 ноя 2006
    Сообщения:
    112
    Адрес:
    г. Пермь
    ок. пасиб. тогда ещё вопрос:

    недавно тема была - изменение времени ожидания соединения ( setsockopt() ). если уменьшить время ожидания, то увеличится скорость сканирования. мне необходимо сканировать локалку - там время отклика, как правило, не превышает 15~30 мс; вот и установить его порядка 50мс.... или всё-таки не стоит...
     
  4. TarasCo

    TarasCo New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2005
    Сообщения:
    106
    На хрена многопоточный то? Многопоточность фтопку. Особенно под Windows
     
  5. gevara

    gevara максим

    Публикаций:
    0
    Регистрация:
    10 ноя 2006
    Сообщения:
    112
    Адрес:
    г. Пермь
    ну да.. на крайний случай асинхронно.. но это не суть важно.
     
  6. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    дык что б быстрее было, ато можно ж ждать замучаться. А почему собсно многопоточность в топку?

    незнаю, может и стоит уменьшить если юзать один поток
     
  7. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    http://www.wasm.ru/src/5/httpchk.zip
     
  8. ShadoWich

    ShadoWich New Member

    Публикаций:
    0
    Регистрация:
    11 фев 2007
    Сообщения:
    35
    gevara не слушай недалёкого, делай многопоточно
     
  9. ptlrs

    ptlrs New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2007
    Сообщения:
    13
    to gevara
    Nmap тебе в руки. Лучше все равно не напишешь. Connect на 80 порт в топку.
     
  10. spencer

    spencer New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2005
    Сообщения:
    277
    блин обьясните же почему в топке оказалась многопоточность и connect на 80й? Имхо без многопоточности никак если нету особого желания минут 10 ждать пока сканер отработает, а чем можно заменить connect?
     
  11. gevara

    gevara максим

    Публикаций:
    0
    Регистрация:
    10 ноя 2006
    Сообщения:
    112
    Адрес:
    г. Пермь
    Ну, насколько я понимаю, ICMP пакет идёт намного быстрее, нежели устанавливается TCP соединение.. вообще дальнейшая работа с протоколом ведётся на вининет, так что connect тут по сути дела и не нужен - просто нужна проверка - открыт ли порт, точнее найти все машины в локалке на которых этот порт открыт. Вот я и подумал, что сканирование можно проводить в 2 этапа: сначала находим работающие машины, затем фильтруем их и оставляем только те, на которых открыт нужный порт.
    Что касается многопоточности... х.з. многие её вообще отвергают.. лучше, конечно, создать асинхронные сокеты...
     
  12. spencer

    spencer New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2005
    Сообщения:
    277
    найти работающие машины можно
    однако чтоб узнать открыт ли там порт все равно ведь прийдётся сделать туда connect по другому вроде бы как и никак...
     
  13. ptlrs

    ptlrs New Member

    Публикаций:
    0
    Регистрация:
    10 мар 2007
    Сообщения:
    13
    Повторюсь еще раз. Nmap в руки. По мимо connect есть еще "море" способов сканирования.

    Код (Text):
    1. Nmap 3.81 Usage: nmap [Scan Type(s)] [Options] <host or net list>
    2. Some Common Scan Types ('*' options require root privileges)
    3. * -sS TCP SYN stealth port scan (default if privileged (root))
    4. * -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only)
    5.    -sT TCP connect() port scan (default for unprivileged users)
    6. * -sU UDP port scan
    Кроме этого есть еще несколько экзотических способов сканирования.
     
  14. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    может скажете хоть один, я то необразованный (:
    вопрос: узнать открыт ли 80-й порт TCP
     
  15. TarasCo

    TarasCo New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2005
    Сообщения:
    106
    Сканер тупо перебирает все адреса подсетки. Допустим он пытается просканировать несуществующий хост. Если мы сканируем прямосоединенную сеть, что connect, что отсылка ICMP займут ровно одинаковое время - ARP протокол не сможет разрешить ip адрес. Время будет потрачено именно на это. Если сеть не прямосоединенная, то тоже самое случиться на шлюзе. Посему говорить о том, что ICMP намного быстрее - не приходится. Кроме того, ICMP запрос будет с большей вероятностью отфильтрован на промежуточных маршрутизаторах.

    Я намерено не пишут о "продвинутых" методиках - типа SYN, FIN сканеров - это развитие, так сказать, базового метода, основанного на обычных коннектах. Кроме того, речь не идет о сканировании машин, находящихся за фаерволлами - тут может потребоваться целый арсенал методов :).
     
  16. gevara

    gevara максим

    Публикаций:
    0
    Регистрация:
    10 ноя 2006
    Сообщения:
    112
    Адрес:
    г. Пермь
    я и стараюсь уйти от громоздких методов.
    Что касается сканирования локалки через ICMP протокол.. помойму иногда на машинах стоит запрет на ICMP ответы..
    Ещё: широковещательные ICMP запросы - я с ними никогда не работал, так что сильно не ругайтесь. Почему нельзя послать в локалку такой пакет и проверить все адреса, с которых придут ответы?
     
  17. TarasCo

    TarasCo New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2005
    Сообщения:
    106
    Можно. Все линукс машины отзовутся ( если конечно не запрещено фаерволом ), Windows - будут молчать. Винды с ICMP броадкастами гордо не разговаривают. Кроме того, броадкасты возможны только в прямосоединенной сети - в соседний сегмент их не пустит шлюз.
     
  18. dimonn

    dimonn New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2006
    Сообщения:
    38
    Адрес:
    Sim-City
    connect'ом можно эффективно сканировать. Делать нужно многопоточно учитывая лимит на количество сокетов для одного процесса (у меня на хп сп2 было 10). Сокеты должны быть неблокируемые, после вызова connect для таймаута вызывать select и рубать их если коннект не прошел, иначе подключения на блокируемых сокетах будут довольно долго находится в состоянии SYN_SENT, и только потом отвалятся - это довольно ощутимо скажется на общем времени скана.
     
  19. ragelord

    ragelord New Member

    Публикаций:
    0
    Регистрация:
    28 июн 2007
    Сообщения:
    2
    только асинхронный коннект скан. многопоточность отъест ресурса и вряд-ли будет быстрее. icmp в топку - после получения icmp_echo_reply тебе один фиг придётся делать коннект, чтобы проверить 80тый порт.