Преглед на функциите и основните техники за използване на помощната програма netcat. Полезни примери за използване на помощната програма netcat в командите на Linux Netcat

Показване на тестова HTML страница на клиент с обикновен браузър с една команда (порт 8080):
(echo -e "HTTP/1.1 200 OK\nContent-Type: text/html\n\n Hello World";) | nc -vv -l -p 8080
Прехвърляне на файл към клиент с обикновен браузър с една команда (порт 8080):
(echo -e "HTTP/1.1 200\nContent-Disposition: прикачен файл; filename=target-name-client-sees\nContent-Type: application/octet-stream\nConnection: close\n"; cat filename- on disk) | nc -vv -l -p 8080

как да използвам nc

(http://handynotes.ru/2010/01/unix-utility-netcat.html )

Нека започнем с няколко прости примера и след това ще ги използваме като основни.
Ако си спомняте, казах, че netcat е швейцарският армейски нож. Какъв би бил този нож, ако не можеше да се използва като обикновен нож? Ето защо netcat може да се използва вместо обикновен telnet:

$nc www.google.com 80

Всъщност е по-удобно от нормалния telnet, защото можете да прекратите връзката по всяко време, като натиснете Ctrl+C и той обработва двоични данни като нормално (без изходни последователности, нищо).
Можете да добавите опцията „-v“, за да покажете по-подробно резултатите от действията, и опцията (-vv), за да получите статистика за това колко байта са били прехвърлени по време на текущата сесия на свързване.
Netcat може да се използва като сървър. Ако го стартирате както по-долу, той ще слуша на порт 12345 (на всички интерфейси):

$ nc -l -p 12345

Сега, ако се свържете с порт 12345 на този хост, каквото и да въведете, ще бъде изпратено до отдалечената страна, което ни казва, че netcat може да се използва като сървър за чат. Стартирайте на един от компютрите:

# На компютър A с IP 10.10.10.10
$ nc -l -p 12345

И се свържете с него от друг:

# На компютър B
$nc 10.10.10.10 12345

Сега и двете страни могат да говорят!
Този начин на говорене, при който и двете страни могат да говорят помежду си, прави възможно използването на nc за мрежови I/O операции! Например, можете да изпратите цяла директория от един компютър на друг, като прехвърлите tar през nc на първия компютър и пренасочите изхода към друг tar процес на втория.
Да предположим, че искате да прехвърлите файлове от директорията /data на компютър A с IP 192.168.1.10 към компютър B (с произволен IP). Просто е:


$ tar -cf - /данни | nc -l -p 6666


# На компютър B
$nc 192.168.1.10 6666 | tar-xf-

Не забравяйте да комбинирате конвейера с Pipe Viewer, описан в предишната статия, за да видите статистика за това колко бързо е прехвърлянето!
Един файл може да бъде изпратен по-просто:

# На компютър A с IP 192.168.1.10
$cat файл | nc -l -p 6666


# На компютър B
$ nc 192.168.1.10 6666 > файл

Можете дори да копирате и възстановите цял диск с помощта на nc:

# На компютър A с IP 192.168.1.10
$ cat /dev/hdb | nc -l -p 6666


# На компютър B
$ nc 192.168.1.10 6666 > /dev/hdb

Забележка: Опцията “-l” не може да се използва с “-p” на компютри Mac! Решението е просто да замените „-l -p 6666? с „-l 6666?. Като тук:

# сега nc слуша на порт 6666 за mac компютри
$ nc -l 6666

Изключително приложение на netcat е сканирането на портове. Netcat не е най-добрият инструмент за тази работа, но го прави (най-добрият, разбира се, е nmap):

$ nc -v -n -z -w 1 192.168.1.2 1-1000
(НЕИЗВЕСТНО) 445 (microsoft-ds) отворен
(НЕИЗВЕСТНО) 139 (netbios-ssn) отворен
(НЕИЗВЕСТНО) 111 (sunrpc) отворено
(НЕИЗВЕСТНО) 80 (www) отворено
(НЕИЗВЕСТНО) 25 (smtp) : Времето за изчакване на връзката изтече
(НЕИЗВЕСТНО) 22 (ssh) отворено

Опцията "-n" предотвратява DNS търсения, "-z" не чака отговор от сървъра, а "-w 1? задава времето за изчакване на връзката на 1 секунда.
Друго нетривиално използване на netcat е като прокси. И портът, и хостът могат да бъдат препратени. Вижте този пример:

$ nc -l -p 12345 | www.google.com 80

Тази команда стартира nc на порт 1234 и пренасочва всички връзки към google.com:80. Ако сега се свържете с този компютър на порт 12345 и направите заявка, ще откриете, че не получавате никакви данни в отговор. Това е правилно, защото не сме настроили двупосочен канал. Ако добавите втори канал, ще получите данните си на друг порт:

$ nc -l -p 12345 | nc www.google.com 80 | nc -l -p 12346

След като изпратите заявка на порт 12345, получете данните си за отговор на порт 12346.
Вероятно най-мощната функция на netcat е да изпълнява всеки процес като сървър:

$ nc -l -p 12345 -e /bin/bash

Опцията "-e" поражда изпълнението на входа и изхода, пренасочени през мрежов сокет. Сега, ако се свържете с хоста на порт 12345, можете да използвате bash:
$ nc локален хост 12345
ls-las
общо 4288
4 drwxr-xr-x 15 потребители на pkrumins 4096 2009-02-17 07:47 .
4 drwxr-xr-x 4 потребители на pkrumins 4096 2009-01-18 21:22 ..
8 -rw——- 1 потребители на pkrumins 8192 2009-02-16 19:30 .bash_history
4 -rw-r—r— 1 потребители на pkrumins 220 2009-01-18 21:04 .bash_logout

(http://execbit.ru/2011/05/23/netcat/)
1 Прехвърлете файлове (изпълнете първата команда на получаващата машина, втората на изпращащата машина:

$ nc -l 31334 > име на файл $ nc 172.16.69.143 31334< filename

$ nc -f /var/log/messages | nc -l 31334 $ nc 172.16.69.143 31334

3 Използвайте вместо telnet (първо - telnet сървър, второ - клиент):

$ nc -l -p 31334 -e /bin/sh $ nc 172.16.69.143 31334

4 Сканирайте за отворени портове:

$ nc -z execbit.ru 1-1024

5 услуги за пръстови отпечатъци, базирани на банери:

$ echo "ОТКАЗ" | nc-execbit.ru 1-1024

6 Организирайте обратна обвивка (първата е клиентът, втората е сървърът, но обвивката ще се отвори от сървъра към клиента).

Почти всяка дистрибуция на Linux има малко незабележима полезност netcat, или просто nc. Тази програма може да създава TCP сокети или в сървърен режим, за да слуша за връзка, или в клиентски режим, за да се свърже със сървър. И честно казано, няма никакво значение за netcat дали ще го използвате като сървър или като клиент - единствената работа е да събира данни от stdin и да ги препраща към посочения мрежов адрес.

Най-простият случай на използване на netcat е да създадете чат клиент-сървър. Въпреки че това е много примитивен начин за създаване на чат, той ясно показва как работи тази помощна програма. В следващите примери ще се приеме, че машината, създаваща неактивния сокет (сървър), има IP адрес 192.168.0.1. И така, създаваме чат сървър, който ще слуша за връзки на TCP порт 3333:

$ nc -l 3333

Сега можем да се свържем с този сървър от друг компютър:

$nc 192.168.0.1 3333

В този случай клавиатурата действа като stdin. Всичко, написано на клавиатурата от страна на сървъра, ще бъде прехвърлено на клиентския терминал и обратно.

Прехвърляне на файл

По абсолютно същия начин можете да използвате netcat за прехвърляне на файлове между два компютъра. Със следната команда можете да създадете сървър, който ще подготви файла за трансфер:

Можете да получите файла backup.iso на друг компютър, както следва:

$ nc 192.168.0.1 3333 > backup.iso

Както можете да видите, netcat не показва никаква информация за процеса на трансфер на данни. Когато работите с големи файлове, това може да бъде доста неудобно. За да разрешите този проблем, можете да използвате помощната програма (преглед на напредъка). В този пример от страната на сървъра информацията за скоростта и обема на предаваните данни ще се показва в реално време:

$ cat backup.iso | pv -b | nc -l 3333

По същия начин можете да покажете статистика от страна на клиента:

$nc 192.168.0.1 3333 | pv -b > архивиране.iso

Други примери

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

$ dd if=/dev/hdb5 | gzip -9 | nc -l 3333

И на отдалечена машина можете да приемете създаденото изображение по следния начин:

$nc 192.168.0.1 3333 | pv -b > myhdb5partition.img.gz

Ако трябва да изпратите група файлове - например набор от конфигурационни файлове - можете да комбинирате netcat и tar архиватор:

$ tar -czf - /etc/ | nc -l 3333

Тирето като име на файл в опциите за tar е необходимо, за да се отпечата изходът на архиватора към stdin, който след това се пренасочва към netcat. Можете да приемете създаденото резервно копие на отдалечена машина по същия начин, както е описано по-рано:

$nc 192.168.0.1 3333 | pv -b > mybackup.tar.gz

Безопасност

Очевидно, когато се използва netcat по този начин, информацията се предава по мрежата в оригиналната й некриптирана форма. За прехвърляне на некритични данни това е напълно приемливо, но за прехвърляне на всякаква ценна информация е разумно да използвате netcat в комбинация със SSH тунел.

Използването на SSH тунел има две предимства:

  1. Информацията се предава вътре в криптиран тунел, така че да е добре защитена;
  2. Няма нужда да отваряте допълнителни портове в конфигурацията на защитната стена на сървъра, тъй като връзката ще бъде установена чрез SSH

От страна на сървъра, файлът в netcat се излага по точно същия начин, както е описано по-рано:

$ cat backup.iso | nc -l 3333

Но от страна на клиента ние се свързваме към netcat сокета в очакване на връзки през SSH тунел:

$ ssh -f -L 23333:127.0.0.1:3333 [защитен с имейл] 192.168.0.1 сън10; \nc 127.0.0.1 23333 | pv -b > архивиране.iso

Разбира се, има и други начини за поставяне на връзка в SSH тунел, но създаването и използването на тунел по този начин има полезната функция, че тунелът се затваря автоматично, когато прехвърлянето на данни през netcat приключи.

… и преносим портов скенер

Невероятно, netcat може да се използва и за сканиране на отворени портове. Опцията -z ще помогне за това:

$ nc -z 192.168.0.1 80-90 Връзката към 192.168.0.1 80 порт беше успешна!

В този пример netcat сканира диапазона от портове 80-90 и съобщава, че порт 80 е отворен на отдалечената машина.

Man страниците за помощната програма netcat също съдържат редица други полезни съвети и интересни примери за нейното използване.

В тази статия ще разгледам популярния мрежов инструмент netcat и някои полезни трикове за използването му.


Netcat е помощна програма на Unix, която ви позволява да установявате TCP и UDP връзки, да получавате данни от там и да ги предавате. Въпреки неговата полезност и простота, мнозина не знаят как да го използват и незаслужено го заобикалят.


С тази помощна програма можете да извършите някои стъпки при провеждане на тест за проникване. Това може да бъде полезно, когато атакуваната машина няма (или ще привлече вниманието) инсталирани пакети, има ограничения (например IoT/Embedded устройства) и т.н.


Какво може да се направи с netcat:

  • Сканиране на портове;
  • Пренасочващи портове;
  • Събирайте банери за услуги;
  • Порт за слушане (свързване за обратна връзка);
  • Изтегляне и качване на файлове;
  • Извеждане на необработено HTTP съдържание;
  • Създайте мини чат.

Като цяло, използвайки netcat, можете да замените част от помощните програми на unix, така че този инструмент може да се счита за вид комбайн за изпълнение на определени задачи.

Практически примери

В много случаи, ако е необходимо да се провери конкретен хост, те използват telnet или свои собствени услуги, за да идентифицират хоста или банера. Как netcat може да ни помогне:

Проверка за отворен TCP порт 12345

$ nc -vn 192.168.1.100 12345
nc: свързване към 192.168.1.100 12345 (tcp) неуспешно: връзката е отказана

$ nc -v 192.168.1.100 22
Връзката към 192.168.1.100 22 порт беше успешна!
SSH-2.0-OpenSSH

Сканиране на TCP портове с netcat:

$ nc -vnz 192.168.1.100 20-24

При такова сканиране няма да има връзка с порта, а само изходът на успешна връзка:


nc: connectx към 192.168.1.100 порт 20 (tcp) неуспешен: Връзката е отказана
nc: connectx към 192.168.1.100 порт 21 (tcp) неуспешен: Връзката е отказана
намери 0 асоциации
намери 1 връзки:
1: флагове=82
outif en0
src 192.168.1.100 порт 50168
dst 192.168.1.100 порт 22
информация за ранга не е налична
Налична е допълнителна информация за TCP
Връзката към 192.168.1.100 порт 22 беше успешна!
nc: connectx към 192.168.1.100 порт 23 (tcp) неуспешен: Връзката е отказана
nc: connectx към 192.168.1.100 порт 24 (tcp) неуспешен: Връзката е отказана

Сканиране на UDP портове.

За сканиране на UDP портове с nmap са необходими root привилегии. Ако ги няма, в този случай помощната програма netcat също може да ни помогне:


$ nc -vnzu 192.168.1.100 5550-5560
Връзката към 192.168.1.100 порт 5555 беше успешна!

Изпращане на UDP пакет

$ echo -n "foo" | nc -u -w1 192.168.1.100 161

Това може да бъде полезно при взаимодействие с мрежови устройства.

Получаване на данни на UDP порта и извеждане на получените данни

$ nc -u локален хост 7777

След първото съобщение изходът ще бъде спрян. Ако трябва да получите няколко съобщения, тогава трябва да използвате while true:


$ докато е истина; do nc -u локален хост 7777; Свършен

Прехвърляне на файл. Използвайки netcat, можете както да получавате файлове, така и да прехвърляте файлове към отдалечен хост:


nc 192.168.1.100 5555< 1.txt
nc -lvp 5555 > /tmp/1.txt

Netcact като обикновен уеб сървър.

Netcat може да действа като обикновен уеб сървър за показване на html страници.


$ докато е истина; направи nc -lp 8888< index.html; done

С помощта на браузър на адрес: http://netcat host:8888/index.html. За да използвате стандартния порт номер 80 на уеб сървъра, ще трябва да стартирате nc с root привилегии:


$ докато е истина; направете sudo nc -lp 80< test.html; done

Чат между възлите

На първия възел (192.168.1.100):


$ nc -lp 9000

На втория възел:


$nc 192.168.1.100 9000

След изпълнение на командите всички знаци, въведени в прозореца на терминала на някой от възлите, ще се появят в терминалния прозорец на другия възел.

Обратна обвивка

Използвайки netcat, можете да организирате удобна обратна обвивка:


nc -e /bin/bash -lp 4444

Сега можете да се свържете от отдалечения хост:


$nc 192.168.1.100 4444

Не трябва да се отказвате, ако няма определени инструменти, често доста тромави, понякога задачата може да бъде решена с импровизирани средства.

Катедра Пътно проектиране

Лаборатория №1

по курс "Информатика"

Изпълнява ученик от група № 114359 Райхман Сергей Юриевич

проверено

Лаборатория №1

тема:Помощна програма Norton Commander

Цел:Научете как да управлявате компютъра си с Norton Commander

Norton Commander ви позволява да изпълнявате следните функции: 1) изпълнява MS-DOS функции, 2) показва съдържанието на директории на дискове, 3) показва дърво на директории на диск, 4) преглежда файлове, 5) редактира текстови файлове, 6) копиране, преместване, преименуване, изтриване на файлове, 7) промяна на атрибутите на файла.

стартиране Нортън командир

За да стартирате Norton Commander, трябва да въведете „nc“ в командния ред и да натиснете „Enter“ (enter). Излезте от Norton Commander - F10 или ALT+X

Изглед на екрана и панелите

След стартиране на Norton Commander на екрана се появяват два правоъгълни прозореца (панела).


Под тези панели се намира подканата на MS-DOS и информационен ред със стойности на функционалните клавиши.

F1 HELP - кратка информация за присвояването на клавиши при работа с NC.

F2 MENU - потребителско меню

F3 VIEW - преглед на текстов файл, документ

F4 EDIT - редактиране на текстов файл

F5 COPY - копиране на файлове

F6 RENMOV - пренасочване, преименуване на файл

F7 MKDIR - създаване на директория(и)

F8 DELETE - изтриване на файлове или поддиректории

F9 PULL DN - менютата, съдържащи NC режими на работа, се показват в горния ред на екрана.

F10 ИЗХОД - излизане от NC

Меню при натискане на клавиш F9

Ляво и дясно - задава режимите за показване на информация на левия и десния панел

Файлове – с файлове се извършват различни операции

Команди - изпълнява различни NC команди, задава NC конфигурация и режими на работа.

Един от елементите на менюто е маркиран, използвайте стрелките, за да изберете друг елемент<¬>, <­>, <®>, <¯>и се натиска клавиша "Enter".

Избор на файл

За да копирате, изтриете, преместите файлове, изберете ги, като натиснете клавиша Ins. За да отмените избора, натиснете отново “Ins”. Информация за броя на избраните файлове се появява в долната част на панела.

Създайте директория

За да създадете директория, натиснете клавиша "F7", въведете името му, натиснете "Enter".

За да въведете директория, натиснете клавиша “Enter” върху нейното име. Когато натиснете клавишите "ALT+F10", на екрана се показва дърво на директории. Курсорните клавиши могат да се използват за бързо придвижване до желаната поддиректория.

Основни клавиши NC

TAB - превключване към друг панел

ALT + F1 - показване в левия панел на съдържанието на друг диск.

ALT + F2 - показване в десния панел на съдържанието на друг диск

CTRL + F1 - премахване на левия панел от екрана

CTRL+F2 - скриване на десния панел от екрана

CTRL+O - премахване на двата панела

CTRL+U - размяна на панели

За да стартирате компютъра, трябва да въведете „LOGIN“ в подканата, въведете паролата (335_2).

Лабораторни задачи

С помощта на командите създайте структура на поддиректория на диска:


nc [-46bCDdhklnrStUuvZz] [-I дължина][-i интервал][-O дължина][-P прокси_потребителско име][-стр изходен_порт][-q секунди][-с източник][-T tokeyword][-V rtable] [-w изчакване][-Х proxy_protocol][-х прокси_адрес[:пристанище]] [дестинация] [пристанище]

Настроики

-4 сили ncда използвате само IPv4 адреси.
-6 сили ncда използвате само IPv6 адреси.
Разрешаване на излъчване.
-° С Изпращане като край на реда.
Активирайте отстраняването на грешки в сокета.
Не се опитвайте да четете от stdin.
-h Разпечатайте помощ за nc.
-аз дължина Указва размера на TCP буфера за получаване.
-i интервал Определя интервал от време на закъснение между изпратените и получени редове текст. Също така причинява забавяне между връзките към множество портове.
сили ncда продължи да слуша за друга връзка, след като текущата му връзка приключи. Грешка е да се използва тази опция без опция.
Използва се за уточняване на това ncтрябва да слуша за входяща връзка, вместо да инициира връзка с отдалечен хост. Грешка е да се използва тази опция във връзка с -стр, , или -zнастроики. Освен това, всички изчаквания, посочени с -wопциите се игнорират.
Не правете никакви DNS или услуги за търсене на определени адреси, имена на хостове или портове.
дължина Указва размера на TCP буфера за изпращане.
прокси_потребителско име Посочва потребителско име за представяне на прокси сървър, който изисква удостоверяване. Ако не е посочено потребителско име, тогава няма да се прави опит за удостоверяване. Понастоящем удостоверяването на прокси сървър се поддържа само за HTTP CONNECT прокси сървъри.
-стр изходен_порт Указва изходния порт, който nc трябва да използва, в зависимост от ограниченията на привилегиите и наличността.
-q секунди след EOF на stdin, изчакайте посочения брой секунди и след това излезте. Ако секундите са отрицателни, изчакайте завинаги.
-r Указва, че портовете на източник или местоназначение трябва да бъдат избрани на случаен принцип, вместо последователно в рамките на диапазон или в реда, в който системата ги присвоява.
Активира опцията за подпис RFC 2385 TCP MD5.
източник Указва интерфейса, който се използва за изпращане на пакетите. За сокети за дейтаграми на домейн UNIX указва локалния временен файл на сокет, който да се създаде и използва, за да могат да се получават дейтаграми. Грешка е да се използва тази опция във връзка с опция.
-T tokeyword Променете стойността на IPv4 TOS. tokeywordможе да е един от критичен, inetcontrol, ниска цена, ниско закъснение, мрежов контрол, пропускателна способност, надеждност, или една от кодовите точки на DiffServ: еф, af11 ... af43, cs0 ... cs7; или число в шестнадесетична или десетична форма.
-T Причини ncза изпращане на RFC 854 DON"T и WON"T отговори на RFC 854 DO и WILL заявки. Това прави възможно използването на nc за скриптиране на telnet сесии.
-U Указва да се използват UNIX-домейни сокети.
-u Използвайте UDP вместо опцията по подразбиране на TCP. За сокети на домейн UNIX използвайте сокет за дейтаграма вместо сокет за поток. Ако се използва гнездо на UNIX домейн, в /tmp се създава временен получателен сокет, освен ако флагът е даден.
-V rtable Задайте таблицата за маршрутизиране, която да се използва. По подразбиране е 0.
-v Имайте ncдават по-подробен изход.
-w изчакване Връзки, които не могат да бъдат установени или са неактивни след секунди за изчакване. В -wфлагът няма ефект върху опция, т.е. nc ще слуша завинаги за връзка, със или без -wфлаг. По подразбиране няма изчакване.
proxy_protocol Изисква nc да използва посочения протокол, когато говори с прокси сървъра. Поддържаните протоколи са " 4 " (ЧОРАПИ v.4), " 5 " (ЧОРАПИ v.5) и " свържете се" (HTTPS прокси). Ако протоколът не е посочен, се използва SOCKS версия 5.
прокси_адрес[:порт] Иска това ncтрябва да се свърже с местоназначението с помощта на прокси на адрес прокси_адреси пристанище. Ако пристанищене е посочено, се използва добре познатият порт за прокси протокола (1080 за SOCKS, 3128 за HTTPS).
-Z DCCP режим.
-z Указва, че nc трябва да сканира само за слушащи демони, без да им изпраща никакви данни. Грешка е да се използва тази опция във връзка с опция.

дестинацияможе да бъде числов IP адрес или символично име на хост (освен ако е дадена опция). По принцип трябва да се посочи дестинация, освен ако не е дадена опция (в този случай се използва локалният хост). За гнездата на домейн UNIX се изисква дестинация и е пътят на сокета за свързване (или слушане, ако е дадена опция).

портът може да бъде едно цяло число или диапазон от портове. Диапазоните са във формата пн-мм. По принцип портът на местоназначението трябва да бъде посочен, освен ако -Uе дадена опция.

Модел клиент/сървър

Съвсем лесно е да се изгради много основен модел клиент/сървър, използвайки nc. Стартирайте на една конзола ncслушане на конкретен порт за връзка. Например:

Nc -l 1234

nc сега слуша на порта 1234 за връзка. На втора конзола (или втора машина), свържете се с машината и порта, на който се слуша:

Nc 127.0.0.1 1234

Сега трябва да има връзка между портовете. Всичко, въведено на втората конзола, ще бъде свързано с първата и обратно. След като връзката беше настроена ncне го интересува всъщност коя страна се използва като "сървър" и коя страна се използва като "клиент". Връзката може да бъде прекъсната с помощта на EOF (‘ ^D’).

Няма -° Сили опция в съвременния netcat, но все пак можете да изпълните команда след установяване на връзката чрез пренасочване на файлови дескриптори. Бъдете внимателни тук, защото отварянето на порт и позволяването на всеки свързан да изпълнява произволна команда на вашия сайт е ОПАСНО. Ако наистина трябва да направите това, ето един пример:

От страна на „сървъра“:

Rm-f /tmp/f; mkfifo /tmp/f cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

От страна на „клиента“:

nc host.example.com 1234

(подкана за обвивка от host.example.com)

Започнете с използването ncза слушане на конкретен порт, с изход, заловен във файл:

nc -l 1234 > име на файл.out

С втора машина се свържете със слушателя ncпроцес, като му подадете файла, който трябва да бъде прехвърлен:

nc host.example.com 1234< filename.in

След като файлът бъде прехвърлен, връзката ще се затвори автоматично.

Говорене със сървъри

Понякога е полезно да говорите със сървърите "на ръка", а не чрез потребителски интерфейс. Може да помогне при отстраняване на неизправности, когато може да е необходимо да се провери какви данни изпраща сървърът в отговор на команди, издадени от клиента. Например, за да извлечете началната страница на уебсайт:

Printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

Имайте предвид, че това също показва заглавките, изпратени от уеб сървъра. Те могат да бъдат филтрирани с помощта на инструмент като sed, ако е необходимо.

По-сложни примери могат да бъдат изградени, когато потребителят знае формата на заявките, изисквани от сървъра. Като друг пример, имейл може да бъде изпратен до SMTP сървър, като се използва:

Nc [-C] локален хост 25<< EOF HELO host.example.com MAIL FROM:< >RCPT до:< >ДАННИ Основно съдържание на имейл. . ОТКАЗАТЕ се от EOF

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

Може да е полезно да знаете кои портове са отворени и изпълняват услуги на целевата машина. В -zфлагът може да се използва за разказване ncда докладвате за отворени портове, вместо да инициирате връзка. Обикновено е полезно да включите подробния изход към stderr, като използвате тази опция във връзка с -vопция.

Nc -zv host.example.com 20-30 Връзката към host.example.com 22 порт е успешна! Връзката към host.example.com 25 порт бе успешна!

Обхватът на портовете беше посочен, за да ограничи търсенето до портове 20 - 30 , и се сканира в нарастващ ред.

Можете също да посочите списък с портове за сканиране, например:

nc -zv host.example.com 80 20 22 nc: свързване към host.example.com 80 (tcp) неуспешно: Връзката е отказана nc: свързване с host.example.com 20 (tcp) неуспешна: връзката е отказана Връзката с host.example .com портът е успешен!

Портовете се сканират по реда, който сте дали.

Като алтернатива може да е полезно да знаете кой сървърен софтуер работи и кои версии. Тази информация често се съдържа в поздравителните банери. За да ги извлечете, е необходимо първо да направите връзка и след това да прекъснете връзката, когато банерът е бил извлечен. Това може да се постигне чрез задаване на малко изчакване с -wфлаг или може би чрез издаване на команда "QUIT" към сървъра:

Ехо "ОТКАЗ" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 Несъответствие на протокола. 220 host.example.com IMS SMTP приемник Версия 0.84 Готов

Примери

nc -p 31337 -w 5 host.example.com 42

Отваря TCP връзка към порта 42 на host.example.com, използвайки порт 31337 като порт източник, с изчакване на 5 секунди.

nc -u host.example.com 53 nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42

Същото като горния пример, но този път активиране на удостоверяване на прокси с потребителско име " ruser"ако проксито го изисква.

свързани команди

ifconfig- Преглед или промяна на конфигурацията на мрежовите интерфейси.

Дял