И опять пароли

Все прекрастно знают, что пароли должны быть длинные и рандомизированныые. Но сколько юзверю ни говори, всё равно будет поступать по своему. Так вот, послушайте реальную историю о нежелании одного юзверя прислушиватся к советам старших и более опытных людей. Имя и Фамилия героя специально изменены.
Значит так, сидел я дома и писал, как обычно, какую то прогу. Вдруг звонит телефон. Подхожу и беру трубку, а на другом конце провода знакомый "чёрт". И выходит у нас с ним такой диалог:
- Алло.
- Привет Моб. Это я Вася.
- Ну и чё тебе надо?
- У меня понимаешь, инет закончился, я почту проверить не успел.
- Ну ладно, подваливай ко мне, с моей тачки и проверишь.
- Ок. Ща приду.

Пока вася ко мне бежал, я запустил на своей машине кейлоггера и продолжал, как ни в чём не бывало, дожидаться Васи. Звонок в дверь - это Василий подошёл, я открыл ему дверь и показал на тачку.
- Ладно, ты почту проверяй/отправляй, а я пойду покурю чтобы тебя не смущять.
- Ок. - Сказал Вася и полез в инет.

Закончив, Вася поблагодарил меня, пообещал пива и с полной уверенностью, что содержимое его письма и пароль останутся в тайне, побежал домой. А я полез смотреть лог. Пассвордом оказалась его фамилия - Pupkin (я чуть со стула не упал, когда увидел это). Долго не раздумывая я позвонил ему и сказал, что бы он сменил пароль на более сложный и впреть не доверял даже те кого хорошо знает, ведь не все такие честные как я :))
Через несколько дней я получаю мессагу от Васи в которой попадались примерно такие строчки: "Q2 - RuLL3z f0r3v3r". Да, чувак потянуло на 31337. Вот я и подумал, а может у него и пароль не изменился, только переделал он его в 31337. Попытался я залогинется под пассвордом Pupk!n - хер, не прокатило. Ну я ещё раз попробовал, но только пас был V@$!@_Pupk!n - опять не то. Вобщем я поэксперементировал, переставлял слова, некоторые буквы переводил в 31337 а некоторые оставлят прежними, результат - пароль v@$!@pupk!n. Не долго думая я послал ему мессагу с его же ящика приблизно такого содержания: "H! V@$!@, y0ur p@$$w0rD - v@$!@pupk!n. СМЕНИ ПАРОЛЬ НА ЧТО-НИБУДЬ ТИПА Wo3fl!Y#".
Больше Вася с моей тачки почту не проверял :)) и пароль сменил на более сложный. Какой? Да хрен его знает, может быть Wo3fl!Y#. :)) А что бы впреть ручками не перебирать разные комбинации сочетаний имени и фамилии, я на скорую руку слепил програмку которая, за меня всё делает. Конечно то что она делае - этого маловато, но я думаею этого будет достаточно, ведь т.к. у ламера скорее всего не хватит фантазии придумать больше, чем сделает эта прога. Я думаю что коментировать, ниже приведённый исходник, не имеет смысла, т.к. там и так всё ясно.
Получившейся после работы этой проги текстовик можно скормить какому-нить брутфорсеру и ... а что делать дальше я думаю знают все и рассказывать это не имеет смысла.

{Функйия для перекодировки строки в 31337}
Function StrTo31337(str: String): String;
var
  i: Integer;
begin
  For i:=1 to Length(str) do
    begin
      Case str[i] of
      'A','a': str[i]:='@';
      'E','e': str[i]:='3';
      'I','i': str[i]:='!';
      'L','l': str[i]:='1';
      'O','o': str[i]:='0';
      'S','s': stt[i]:='$';
      end;       
    end;
  StrTo31337:=str;
end;

{Функция для извращения над именем и фамилией}
Function Izvrat(s1,s2: ShortString): String;
var
  str,str2,tmp: String;
  i: Integer;
begin
  str:=s1+s2+#10#13;
  str:=str+s2+s1+#10#13;
  str:=str+s1+'_'+s2+#10#13;
  str:=str+s2+'_'+s1+#10#13;
  str:=str+s1+' '+s2+#10#13;
  str:=str+s2+' '+s1+#10#13;
  str2:=s1+s2;
  for i:=1 to Length(str2) do
    tmp:=tmp+str2[i]+str2[Length(str2)-Length(s2)+i];
  str:=str+tmp+#10#13;
  tmp:='';
  for i:=0 to Length(str2)-1 do
    tmp:=tmp+str2[Length(str)-i];
  str:=str+tmp+#10#13;
  Izvrat:=str;
end;

var
 f: TextFile;
 name, surname: ShortString;

begin
  if ParamCount < 2 then
    begin
      WriteLn('Usage: program.exe  ');
      Halt;
    end;
  AssignFile(f, 'rezult.txt');
  Rewrite(f);
  name:=ParamStr(1);
  surname:=ParamStr(2);
  WriteLn(f,StrTo31337(Izvrat(name,surname)));
  CloseFile(f);
end.

© m0b!Us 31/05/2002