Netcat підключення. Як використовувати Netcat - швейцарський армійський ніж хакерських утиліт. Надсилання тестового UDP-пакету на віддалений вузол

Привіт Шановний читачу Х!

Думаю, цей малюнок можна назвати міні-тестом "Чи ти хакер?". Спробуй сказати, що
означає це кумедне кошеня. Ну а якщо труднощі таки виникають, знай, що перед тобою найулюбленіша річ усіх просунутих людей, так чи інакше
пов'язаних з Мережею, а ім'я їй - Netcat.

Netcat - це утиліта, яка дозволяє читати та передавати дані через мережеві
з'єднання. Іншими словами, Netcat дозволяє тобі з'єднатися з будь-чим і робити що завгодно. Netcat є абсолютно самодостатнім, при грамотному використанні він може замінити будь-який програмний засіб, включаючи навіть відомий тобі
Apache. Отже, у найпростішому варіанті Netcat дозволяє створювати TCP і UDP з'єднання з будь-якого на будь-який порт, вміє "слухати" вхідні з'єднання (причому можна наказати "кошеняті" чекати з'єднання тільки з вказаних тобою адрес і навіть портів!), може сканувати порти, дозволяти DNS-запити, посилати будь-які команди зі стандартного введення, виконувати заздалегідь визначені дії, у відповідь на з'єднання, яке слухає "кошеня", робити Hex-дамп відправлених та отриманих даних і багато чого ще...

Хоча, думаю, треба було з самого початку сказати, що Netcat вміє все; і можливості його використання обмежені лише рівнем твоїх знань та твоєю фантазією. Спочатку Netcat замислювався як Unix утиліта, але як ти розумієш не могло не знайти ентузіастів, які б не портували "кошеня" під Windows. Обидві версії ти легко знайдеш у пошукових системах за запитом "Netcat". Але переваги, звичайно, дістаються Unix-оідам, які при компіляції можуть злегка підправити кошеня і тим самим активувати відключені по дефолту фішки додаткові можливості.

Якщо ти коли-небудь користувався "програмно-реалізованими атаками", а просто кажучи експлоїтами, то напевно помічав, що більш ніж у половині з них так чи інакше використовується Netcat. Це пов'язано перш за все з тим, що Netcat ніколи і жодним чином не модифікує вхідні дані (як і вихідні), на відміну скажемо від Telnet-клієнта, який спочатку інтерпретує вхідні дані, а потім видає їх тобі. Саме тому Netcat перетворився на потужний інструмент пошуку та експлуатації вразливостей, завдяки якому Bugtraq поповнився сотнями нових постінгів.

Але, якщо пошук уразливостей тобі не до вподоби, можеш спробувати використовувати Netcat як web-браузер, або, скажімо, поштового клієнта; тим більше, що в Internet Explorer-і та Outlook-і знайшли "свіжі" дірки, старий добрий Унікод, хех... Причому, на цій ниві відзначилися наші російські хлопці (! Грає національна гордість!). Якщо ти читаєш цю статтю, використовуючи Explorer, сходи, подивися наскільки твій "Осел"
діряв.

Ось після такого і пересядеш на Netcat – не дуже зручно, зате
безпечно... Ну і нарешті, приклади "просунутого" використання Netcat
(Unix):

  1. Netcat як;
  2. Netcat як утиліта " "; такі часто описуються в X, а насправді ж вони просто надсилають запити на добре відомі тобі пошуковики... Твоє "кошеня" теж може робити цю корисну роботу!;
  3. Netcat як! Примусь провайдера відпочити!

Зверніть увагу, все виконано у вигляді shell-скриптів, так що ти при необхідності зможеш підправити все, що завгодно.
За цим хочу попрощатися. Читай мануали, і удачі тобі у вивченні у вивченні культової утиліти Netcat!

PS/Особисте/: Сайт http://georgy.h1.ru/ мною закритий. Раз і назавжди. Дякую всім, хто був моїм гостем.

У цій статті я розгляну популярну мережеву утиліту netcat та корисні трюки під час роботи з нею.


Netcat – утиліта Unix, що дозволяє встановлювати з'єднання TCP та UDP, приймати звідти дані та передавати їх. Незважаючи на свою корисність і простоту, багато хто не знає способів її застосування і незаслужено обходить її стороною.


За допомогою даної утиліти можна проводити деякі етапи під час проведення тестування на проникнення. Це може бути корисно, коли на атакованій машині відсутні (або привернуть увагу) встановлені пакети, є обмеження (наприклад, IoT/Embedded пристрою) і т.д.


Що можна зробити за допомогою Netcat:

  • Сканування портів;
  • Перенаправляти порти;
  • Збирати банерів сервісів;
  • Слухати порт (біндити для зворотного з'єднання);
  • Завантажувати та закачувати файли;
  • Виводити вміст raw HTTP;
  • Створити міні-чат.

Взагалі за допомогою netcat можна замінити частину unix утиліт, тому цей інструмент можна вважати комбайном для виконання тих чи інших завдань.

Практичні приклади

У багатьох випадках при необхідності перевірки того чи іншого хоста використовують телнет або власні сервісні служби для виявлення хоста або банера. Як нам може допомогти netcat:

Перевірка наявності відкритого TCP-порту 12345

$ nc -vn 192.168.1.100 12345
nc: connect to 192.168.1.100 12345 (tcp) failed: Connection refused

$ nc -v 192.168.1.100 22
Connection to 192.168.1.100 22 port succeeded!
SSH-2.0-OpenSSH

Сканування TCP-портів за допомогою netcat:

$ nc -vnz 192.168.1.100 20-24

При такому скануванні не буде з'єднання з портом, а лише виведення успішного з'єднання:


nc: connectx to 192.168.1.100 port 20 (tcp) failed: Connection refused
nc: connectx to 192.168.1.100 port 21 (tcp) failed: Connection refused
found 0 associations
found 1 connections:
1: flags=82
outif en0
src 192.168.1.100 port 50168
dst 192.168.1.100 port 22
rank info not available
TCP aux info available
Connection to 192.168.1.100 port 22 succeeded!
nc: connectx to 192.168.1.100 port 23 (tcp) failed: Connection refused
nc: connectx to 192.168.1.100 port 24 (tcp) failed: Connection refused

Сканування портів UDP.

Для сканування UDP портів за допомогою nmap потрібні root привілеї. Якщо їх немає - у цьому випадку нам також може допомогти утиліта netcat:


$ nc -vnzu 192.168.1.100 5550-5560
Connection to 192.168.1.100 port 5555 succeeded!

Надсилання UDP-пакету

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

Це може бути корисним при взаємодії з мережевими пристроями.

Прийом даних на UDP-порту та виведення прийнятих даних

$ nc -u localhost 7777

Після першого повідомлення висновок буде зупинено. Якщо необхідно прийняти кілька повідомлень, необхідно використовувати while true:


$ while true; do nc-u localhost 7777; done

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


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

Netcact у ролі найпростішого веб-сервера.

Netcat може виконувати роль найпростішого веб-сервера для відображення html-сторінки.


$ while true; do nc -lp 8888< index.html; done

За допомогою браузера на адресу: http://хост netcat:8888/index.html. Для використання стандартного порту веб-сервера за номером 80 вам доведеться запустити nc c root привілеями:


$ while true; do 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

Не варто опускати руки, якщо немає тих чи інших інструментів, часто досить громіздких, іноді завдання можна вирішити підручними засобами.

|

Система Linux відома тим, що в більшості дистрибутивів величезна кількість корисних утиліт командного рядка поставляються разом з ОС. Досвідчені системні адміністратори можуть виконати більшість завдань за допомогою вбудованих інструментів без встановлення додаткового програмного забезпечення.

Даний посібник присвячений роботі утиліти . Цей своєрідний «швейцарський армійський ніж» мережевих інструментів може бути корисним під час моніторингу, тестування та передачі даних через мережеві з'єднання.

У цьому посібнику використовується сервер Ubuntu 12.04, але загалом утиліта netcat доступна практично на будь-якому сучасному дистрибутиві. Ubuntu поставляється з BSD-варіантом утиліти, який буде використаний у цій статті. Інші версії можуть працювати інакше або надавати інші опції.

Загальний синтаксис

За промовчанням netcat працює шляхом ініціації з'єднання TCP з віддаленим хостом.

Базовий синтаксис:

netcat [опції] хост порт

Така команда ініціює TCP-з'єднання із зазначеним хостом через заданий порт. В основному вона функціонує аналогічно старій команді Linux - telnet. Майте на увазі, що ваше з'єднання буде встановлене в незашифрованому вигляді.

Щоб замість встановлення з'єднання TCP надіслати UDP-пакет, використовуйте опцію -u:

netcat -u хост порт

Щоб встановити діапазон портів, вкажіть перший та останній порт діапазону через тире:

netcat хост перший_порт-останній_порт

Зазвичай, ця команда використовується з додатковими прапорами.

У більшості систем можна використовувати netcat або nc. Вони взаємозамінні, оскільки є псевдонімами однієї команди.

Використаннядля сканування портів

Найчастіше netcat використовують як сканер портів.

Хоча Netcat, ймовірно, не найрозумніший інструмент для виконання цього завдання (у більшості випадків для цього більше підійде nmap), він може виконувати просте сканування портів, щоб швидко визначити відкриті порти.

Для цього вкажіть діапазон портів для сканування (як показано вище), а також використовуйте опцію -z, яка сканує замість встановлення з'єднань.

Наприклад, щоб просканувати всі порти до порту 1000, виконайте:

netcat-z-v domain.com 1-1000

Як бачите, крім опції -z у цій команді використана опція -v, завдяки якій netcat виводить докладнішу інформацію.

Результат має такий вигляд:

nc: connect to domain.com port 1 (tcp) failed: Connection refused
nc: connect to domain.com port 2 (tcp) failed: Connection refused
nc: connect to domain.com port 3 (tcp) failed: Connection refused
nc: connect to domain.com port 4 (tcp) failed: Connection refused
nc: connect to domain.com port 5 (tcp) failed: Connection refused
nc: connect to domain.com port 6 (tcp) failed: Connection refused
nc: connect to domain.com port 7 (tcp) failed: Connection refused
. . .
Connection to domain.com 22 port succeeded!
. . .

Як бачите, ця команда виводить докладний результат, а також повідомляє, чи було сканування кожного окремого порту успішним чи ні.

Це зручно при використанні доменного імені.

Проте, вказуючи потрібні IP-адреси, можна прискорити сканування. Потім можна використовувати прапорець -n, щоб вказати, що не потрібно дозволяти IP-адресу за допомогою DNS:

netcat-z-n-v 111.111.111.111 1-1000

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

Для перенаправлення стандартної помилки стандартний висновок використовується bash-синтаксис 2> отримані результати фільтруються за допомогою grep:

netcat -z -n -v 111.111.111.111 1-1000 2>&1 | grep succeeded
Connection to 111.111.111.111 22 port succeeded!

Отже, тепер можна бачити, що єдиний відкритий порт на віддаленій машині в діапазоні 1-1000 це порт 22, стандартний порт SSH.

Спілкуванняза допомогою netcat

Команда netcat не обмежується надсиланням пакетів TCP та UDP. Вона також може прослуховувати порт на з'єднання та пакети, що дає можливість підключити два екземпляри netcat щодо «клієнт-сервер».

Який комп'ютер є сервером, а який – клієнтом, суттєво лише під час початкового налаштування. Після того, як з'єднання встановлено, зв'язок однаковий в обох напрямках.

На одній машині слід сказати netcat прослуховувати певний порт на підключення. Це робиться за допомогою параметра -l, після якого вказується номер порту:

Виконавши цю команду, netcat прослуховує з'єднання TCP на порту 4444. Тепер звичайний користувач (не root) не зможе відкривати будь-які порти до 1000 (для безпеки сервера).

На другому сервері необхідно підключитися до першої машини через вказаний порт. Це робиться так само, як було показано раніше:

netcat domain.com 4444

Після встановлення з'єднання може здатися, що нічого не сталося. Але тепер можна надсилати повідомлення по обидва боки з'єднання і їх буде видно на обох серверах.

Введіть повідомлення та натисніть ENTER. Повідомлення з'явиться як на локальному, так і віддаленому сервері. Це працює і у зворотному напрямку.

Після завершення надсилання повідомлень натисніть CTRL-D, щоб перервати з'єднання TCP.

Обмін файлами за допомогою netcat

Ознайомившись із основними функціями утиліти та виконавши попередні приклади, можна перейти до складніших завдань.

Як мовилося раніше, утиліта netcat створює TCP-з'єднання, з допомогою яких можна передавати практично будь-який вид інформації, не обмежуючись набраними користувачем повідомленнями. Ці знання можна використовувати, щоб перетворити netcat на програму передачі файлів.

Знову ж таки, потрібно вибрати одну машину для прослуховування з'єднань. Проте, замість друкувати інформацію на екран (як у попередньому прикладі), netcat розмістить всю інформацію прямо у файл:

netcat -l 4444 > received_file

На другому комп'ютері потрібно створити простий текстовий файл:

echo "Hello, це є файл" > original_file

Тепер можна використовувати цей файл як вхідні дані для створення з'єднання зі слухаючим комп'ютером. Файл буде передаватися так само, якби він був набраний в інтерактивному режимі:

netcat domain.com 4444< original_file

Як можна бачити, на комп'ютері, який очікував на з'єднання, тепер є новий файл з ім'ям «received_file», що містить введені на іншому комп'ютері дані:

cat received_file
Hello, this is a file

Як бачите, подібні з'єднання можна легко використовувати для передачі будь-якої інформації.

Наприклад, можна передати вміст цілого каталогу; для цього створіть безіменний тарбол, передайте його на віддалену систему та розпакуйте його у віддалений каталог.

На стороні, що приймає, можна використовувати наступну команду, щоб попередити про те, що потрібно отримати і розпакувати файл:

netcat-l 4444 | tar xzvf -

Тіре в кінці команди означає, що тарбол працюватиме на стандартне введення, яке в даний час передається по мережі, якщо з'єднання встановлено.

На стороні, що містить каталог, який потрібно передати, запакуйте цей каталог в архів, а потім надішліть його на віддалений комп'ютер за допомогою netcat:

tar-czf - * | netcat domain.com 4444

На цей раз тире в команді tar означає, що вміст поточного каталогу (як зазначено символом *) потрібно заархівувати та передати, а потім записати результат у стандартний висновок.

Потім це записується в підключення ТСР, передається іншій стороні з'єднання і розпаковується в каталог віддаленого комп'ютера.

Це лише один приклад передачі складніших даних з одного комп'ютера на інший. Також часто використовується команда dd, яка створює образ диска однією стороні і передає його віддалений комп'ютер. Проте такий підхід не охоплений цим керівництвом.

як простий веб-сервер

Утиліта netcat вже була використана для передачі повідомлень та файлів. Цей підхід допоможе використовувати netcat як простий веб-сервер. Це може стати в нагоді для тестування готових сторінок.

Для початку потрібно створити HTML-файл на одному сервері:

У цьому файлі можна розмістити наступний простий код:



Test Page


Level 1 header


Subheading


Normal text here




Збережіть та закрийте файл.

Цей файл не можна обслуговувати на порту веб-сервера за промовчанням (80) без привілеїв root. Оскільки звичайний користувач установіть порт 8888.

Щоб протестувати одну сторінку та перевірити, як вона відображається, наберіть щось на кшталт:

netcat -l 8888< index.html

Тепер контент можна переглянути у браузері, відвідавши:

http://IP_сервера:8888

Ця команда виведе сторінку, після чого з'єднання netcat закриється. При спробі поновити сторінку вона зникне.

Netcat може обслуговувати сторінку протягом невизначеного терміну; для цього потрібно зробити останню команду циклічною за допомогою рядка:

while true; do nc -l 8888< index.html; done

Тоді сторінка продовжуватиме отримувати з'єднання після того, як перше з'єднання було припинено.

Натисніть CTRL-C, щоб зупинити цикл.

Цей сервер дозволить побачити, як сторінка відображається у браузері, але не надає більшої функціональності. Ніколи не використовуйте такий веб-сервер для обслуговування реальних сайтів: він є небезпечним, крім того, такі прості речі, як посилання, не завжди працюють правильно.

Підсумки

Даний посібник знайомить з основними функціями та використанням netcat. Так як цей інструмент універсальний, він може бути використаний для діагностики проблем та тестування базової функціональності TCP/UDP-з'єднань.

Крім того, netcat дозволяє спілкуватися та обмінюватися інформацією між різними комп'ютерами, що дуже важливо для швидкої взаємодії користувачів. Спрощуючи створення з'єднання, утиліта netcat намагається зробити мережеві взаємодії комп'ютерів більш зручними, швидкими та зрозумілими.

Tags: ,

Основні команди NC викликаються функціональними кнопками F1 - F10. Список цих команд розташований у нижньому інформаційному рядку екрана.

а) Підказка, допомога, Help, F1 (рис.2, 3).

При натисканні цієї клавіші на екрані з'являються: короткий опис системи Norton Commander та підказка, яка визначає призначення клавіш та команд.

б) меню користувача, Menu, F2 (рис.4)

За допомогою цієї команди на екрані викликається додаткове меню, створене користувачем.

в) Перегляд вмісту файлу, View, F3 (рис.5).

Курсор треба поставити на ім'я файлу, зміст якого потрібно переглянути та натиснути клавішу F3. На екрані монітора висвітиться вміст файлу, який можна побачити, прочитати, але неможливо редагувати.

г) Редагування тексту, Edit, F4 (рис.6)

Щоб завантажити файл у вбудований редактор Norton Commander, потрібно вказати файл курсором і натиснути клавішу F4. Для редагування переміщення курсору можна здійснювати клавішами керування курсором. Вбудований редактор Norton Commander може працювати з файлом, обсяг якого не перевищує 30 Кбайт. Для файлів із великим об'ємом використовується зовнішній редактор, якщо він налаштований у системі Norton Commander. Для завантаження файлу до зовнішнього редактора використовують команду, що викликається натисканням ALT + F4.

д) Копіювання файлів та каталогів, Copy, F5 (рис.7, 8, 9)

Для копіювання файлу необхідно визначити каталог, де він знаходиться (джерело) і куди копіюватиметься (приймач). У пасивній панелі потрібно відкрити каталог-приймач, а в активній панелі-каталог-джерело. В останньому потрібно курсором вказати копійований файл і натиснути F5. У діалоговому вікні, що з'явилося, після натискання F5, потрібно підтвердити копіювання. За потреби можна виправити ім'я каталогу-приймача або дати інше ім'я для файлу копії.

При копіюванні групи файлів спочатку їх слід зазначити, навіщо курсор підводиться до імені потрібного файлу і натискається клавіша Insert. Ім'я зазначеного файлу змінить колір і фон. Щоб зняти позначку з файлу, на якому знаходиться курсор, достатньо ще раз натиснути клавішу Insert. Копіювання здійснюється натисканням кнопки F5. У діалоговому вікні потрібно підтвердити копіювання як одиночного файлу, так і групи (всіх) файлів.

Якщо потрібно скопіювати всі файли каталогу, то для виділення їх достатньо натиснути клавішу зі знаком малої цифрової клавіатури. Щоб скасувати виділення, потрібно повторно натиснути цю клавішу.

Якщо потрібно скопіювати всі файли певної групи, то для виділення їх достатньо натиснути клавішу з одинарним знаком + малої цифрової клавіатури і в діалоговому вікні вибрати ознаку групи і натиснути Enter. І навпаки, для скасування виділення потрібно натиснути клавішу з одинарним знаком мінус (-) та натиснути клавішу Enter.


Для інверсного виділення потрібно натиснути клавішу зі знаком малої цифрової клавіатури.

Ознаки груп, що вказуються під час копіювання, досить множинні. Деякі приклади наведено в таблиці 1. Таблиця 1


Це другий пост із серії статей про Unix утиліти, які Вам слід знати. У цій статті я представляю Вам утиліту netcat або просто nc.

Утиліту Netcat часто називають таким собі "Швейцарським армійським ножем", у хорошому сенсі цього слова. Функціонал netcat корисний тією ж мірою, в якій корисна багатофункціональність і зручність кишенькового Швейцарського армійського ножа, що зарекомендував себе. Деякі з її можливостей включають сканування портів, передачі файлів, прослуховування портів і вона може бути використана як бекдор.

У 2006 році netcat отримала 4-е місце в опитуванні "100 утиліт мережної безпеки", тому вона - це точно той інструмент, який потрібно знати.

Як користуватись nc?

Якщо Ви пам'ятаєте, я казав, що netcat це Швейцарський армійський ніж. Чим би цей ніж був, якби його не можна було використовувати як звичайний ніж? Ось чому netcat може використовуватись замість звичайного telnet:

$ nc www.google.com 80

Насправді він зручніший ніж звичайний telnet, тому що Ви можете завершити з'єднання в будь-який час, натиснувши Ctrl+C і він обробляє двійкові дані як звичайні (ніяких escape послідовностей, нічого).

Ви можете додати параметр “-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 для операцій введення/виведення через мережу! Наприклад, Ви можете надіслати цілу директорію з одного комп'ютера на інший організувавши tar конвеєр через nc на першому комп'ютері, і перенаправивши виведення в інший tar процес на другому.

Припустимо, Ви бажаєте переслати файли з директорії /data комп'ютера A з IP 192.168.1.10 на комп'ютер B (з будь-яким IP). Це просто:

# На комп'ютері A з IP 192.168.1.10 $ tar -cf - / data | nc -l -p 6666 # На комп'ютері B $ nc 192.168.1.10 6666 | tar -xf -

Не забудьте скомбінувати конвеєр з Рipe Viewer , який був описаний у попередній статті, щоб подивитися статистику того, як швидко відбувається передача!

Одиночний файл може бути надісланий простіше:

# На комп'ютері A з IP 192.168.1.10 $ cat file | nc -l -p 6666 # На комп'ютері B $ nc 192.168.1.10 6666 > file

Ви навіть можете скопіювати та відновити цілий диск за допомогою 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 (UNKNOWN) 445 (microsoft-ds) open (UNKNOWN) 139 (netbios-ssn) open (UNKNOWN) 111 (sunrpc) open (UNKNOW) www) open (UNKNOWN) 25 (smtp) : Connection timed out (UNKNOWN) 22 (ssh) open

Параметр “-n” запобігає перегляду DNS, “-z” не чекає відповіді від сервера, та “-w 1? задає тайм-аут для з'єднання в 1 секунду.

Інше нетривіальне використання netcat як проксі. І порт та хост можуть бути перенаправлені. Подивіться цей приклад:

$ nc -l -p 12345 | nc 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 localhost 12345 ls -las total 4288 4 drwxr-xr-x 15 pkrumins users 4096 2009-02-17 07:47 . 4 drwxr-xr-x 4 pkrumins users 4096 2009-01-18 21:22 .. 8 -rw------- 1 pkrumins users 8192 2009-02-16 19:30 .bash_history 4 -r -r-- 1 pkrumins users 220 2009-01-18 21:04 .bash_logout ...

Наслідки такі, що nc це популярний хакерський інструмент і з його допомогою можна дуже легко зробити бекдор. На Linux сервері ви можете запустити /bin/bash, а на Windows cmd.exe і мати у своїх руках повний контроль.

Це все, що я хотів сказати. Вам знайомі інші корисні прийоми роботи з netcat, які тут не описані?

Як встановити nc?

Якщо у вас Debian або система, що базується на Debian, така як Ubuntu, зробіть таке:

$ sudo aptitude install netcat

Якщо у Вас Fedora або система, що базується на Fedora, така як CentOS, зробіть:

$ sudo yum install netcat

Якщо у Вас Slackware, FreeBSD, NetBSD, Solaris або Mac, скачайте вихідні номери nc і зробіть:

$ tar -zxf nc-version.tar.gz $ cd nc-version $ ./configure && sudo make install

Ще спосіб зробити це на Mac, якщо у Вас є MacPorts:

$ sudo port install netcat

На Slackware Ви можете встановити її як пакет із пакетної директорії:

$ sudo installpkg nc-1.10-i386-1.tgz

Якщо у Вас Windows, завантажте порт Windoze з securityfocus.

Посібник з утиліти може бути знайдений у man nc.

Приємного проведення часу разом з nc, до наступного разу!