Техника сетевых атак
Шрифт:
· JNZ Ok; Это не крайний символ
· MOV Byte ptr [EAX],'!'; pswd[p]=0
· POP EAX; p=0
· PUSH EAX; Восстановление (сохранение) EAX
· JMP Begin
· Ok:
· INC Byte ptr [EAX]; ++pswd[p]
· CMP byte ptr [EAX],'z'; if (pswd[p]»'z') go to Check
· JA Check
· POP EAX; p=0
· PUSH EAX; Восстановление (сохранение) EAX
· JMP Begin
·}
·
·}
·
Исходный текст NR.PL
· @ECHO off
· perl -x -S "%0"
· goto end
· #!perl
· #line 6
· print "TCP SpyServer Version 2.0 Copyright (c) 2000 Kris Kaspersky\n";
·
· #Клиент\серверный шпион
· use Socket;
·
· #Настойки по умолчанию
· $local_port = 110;
· $remote_port = 110;
· $server = 'mail.aport.ru';
·
· #Попытка взятия настоек из файла
· if (open(FH,"tcpspy"))
· {
· $local_port=«FH»;
· $local_port =~ s/\n//;
· $remote_port=«FH»;
· $remote_port =~ s/\n//;
· $server=«FH»;
· $server=~ s/\n//;
·}
·
· print "Порт локального сервера \t[$local_port]:";
· $tmp=«»; $tmp=~ s/\n//;if ($tmp»0) {$local_port=$tmp;}
·
· print "Порт удаленного сервера \t[$remote_port]:";
· $tmp=«»; $tmp=~ s/\n//;if ($tmp»0) {$remote_port=$tmp;}
·
· print "Адрес сервера (none нет) \t[$server]";
· $tmp=«»; $tmp=~s/\n//;
· if (length($tmp)) {$server=$tmp}
·
· #Сохраняем настойки в файле
· if (open(FH,"»tcpspy"))
· {
· print FH "$local_port\n";
· print FH "$remote_port\n";
· print FH "$server\n";
·}
· close (FH);
·
· # 666 - особый код для Эхо-сервера
· if ($server=~/none/) {$server=666;}
·
· #Создаем сокет для локального сервера
· socket(SERVER, PF_INET, SOCK_STREAM, 6);
· setsockopt(SERVER, SOL_SOCET, SO_RESEADDR,1);
· $my_addr = sockaddr_in($local_port, INADDR_ANY);
· bind(SERVER, $my_addr);
·
· #Слушаем…
· listen(SERVER,1);
· while(1)
· {
·
· print "Ожидание подключения…\t\t";
· #Определяем адрес клиента
· $client_addr=accept(CLIENT, SERVER);
· ($clint_port,$client_ip) = sockaddr_in($client_addr);
· print "+OK [IP:",inet_ntoa($client_ip),"]\n";
·
· $one=CLIENT;
·
· $connect=1;
·
· if ($server!=666)
· {# Прокси-схема с удаленным сервером
· print "Соединение с узлом $server…\t";
· socket(RSERVER, PF_INET, SOCK_STREAM,6);
· connect(RSERVER, sockaddr_in($remote_port,inet_aton($server))) || die;
· print "+OK\n";
· $two=RSERVER;
·
·}
· else
· {# Эхо-сервер
· print "Установка эхосервера…\t\t+OK\n";
· $two=CLIENT;
·}
·
· $x='foo';
· open(LOG,"»tcpspy.log");
· #Обработка текущего подключения
· while($connect)
· {
· $rin='';
· vec($rin, fileno($one),1)=1;
· $timeout=5;
· $nfound=select($rout = $rin, undef, undef, $timeout);
· if (vec($rout, fileno($one),1))
· {
· #Слушаем ответ клиента
· recv($one,$x,10000,0);
· if (!length($x)) {$connect=0;}
· else
· {
·